채택완료

제이쿼리 질문입니다.

2020-05-30 (토) 17:42:30 2,597

a링크의 onclick를 사용하다가 궁금한점이 생겨서요.

스크립트내에서 함수선언을 한것은 잘되는데

제이쿼리의 $(function() {})를 써서 안에서 함수 선언한것은 정의되지 않았다고 하는데

이해가 안됩니다.

기본적으로 제가 알고있는 지식으로는

$(function() {}) 은 html 랜더링 시에 dom이 완전히 생성된 후에 실행이 되는걸로 알고있는데

그렇다면 a가 생성된 후인데 왜 onclick는 안먹는지 이해가 되지를 않습니다.

Copy
<a href='#' onclick="test();">............</a>

 

<script>

function test() {

 console.log(1); // 잘됨

}

 

$(function() {

   function test() {
     console.log(1);  //  에러 :: test is not defined
   }

});

</script>
|

답변 2개 / 댓글 1개

채택된 답변
+20 포인트

다음 처럼 해 보시죠.

<script>
$(function() {
   this.test = function() {
     console.log(1);  //  에러 :: test is not defined
   }
});
</script>

답변에 대한 댓글 1개

감사합니다.. this로 접근하면되는군요..몰랐네요.

$(......)<---이것도 하나의 함수 입니다

함수내에 선언된 함수를 바로 호출할 수 없습니다

함수내에 전역변수처럼 함수변수를 하나 만들어주면 됩니다

$(function(){

  function mytest(){

      ~~~~~~~

  }

 test = mytest;

});

답변을 작성하려면 로그인이 필요합니다.