2013-01-23 2 views
0

내 jQuery 스크립트는 단지 작동하지 않으려 고합니다. 실제로는 정말 간단합니다. 실제 jquery 스크립트를 제외하고는 모든 것을 가져갔습니다. 정말 괴롭습니다. 감사합니다.jQuery 그냥 작동하지 않습니다

<!doctype html> 
<html> 

    <head> 
     <script src="jquery.js"></script> 
     <script> 
      $("#click").click(function() { 
       alert("works!"); 
      }); 
     </script> 
    </head> 

    <body> 
     <a href="#" id="click">Button</a> 
    </body> 

</html> 

P. jQuery JS 파일이 유효합니다.

+1

은 jquery 경로가 유효합니까? 브라우저에서 자바 스크립트가 활성화되어 있습니까? 브라우저에 js 콘솔을 열어 오류가 있는지 확인하십시오. – Cybermaxs

+3

이 솔루션은 [this one] (http://learn.jquery.com/about-jquery/how)를 포함하여 거의 모든 입문 jQuery 자습서에서 다루고 있습니다. -jquery-works) (jquery.com 홈페이지에 링크가 있음). – nnnnnn

+0

아, 나는 jQuery에서 너무 오랫동안 잊어 버렸습니다. 나는 의사 준비에 대해 잊어 버렸습니다. 정말 고마워요. – Matthew

답변

4

당신은

$(function(){ 
    // your code here which relies on DOM elements 
}); 

그렇지 않으면 당신은 DOM이로드되지 않았으며 이벤트가 요소에 바인딩되지 않습니다 내 코드를 포장해야합니다.

+0

누구든지 투표를했는데 설명해 주시겠습니까? –

+0

나는 투표를하지 않았지만 그럴듯한 이유는 "그렇지 않으면 DOM이로드되지 않았습니다."라고 말했기 때문입니다. 그 문장은 정확하지 않습니다. DOM은 항상 올바르게 코딩 된 페이지로로드됩니다. jQuery 코드가 DOM로드를 기다려야한다는 것입니다. –

7

코드를 이렇게 변경하십시오.

$(document).ready(function() { 
    $("#click").click(function() { 
     alert("works!"); 
    }); 
}); 

그러나 페이지의 바닥에 스크립트 태그를 이동해야 , 그들은 블록을하지 않도록 : 그것은 자바 스크립트를 한 번 실행되는 모든 HTML 요소가 페이지에로드 된 보장 . 이것은 또한 실제로 $ (document) .ready 콜백이 필요 없다는 것을 의미합니다.

2

$(document).ready(function() { 
    $("#click").click(function() { 
     alert("works!"); 
    }); 
}); 

처럼 document.ready 내부에 코드를 추가하거나

<body> 
    <a href="#" id="click">Button</a> 
    // Other elements... 
    <script type="text/javascript"> 
      $("#click").click(function() { 
       alert("works!"); 
      }); 
    </script> 
</body> 
1

로 기능을 감싸 사용해보기 :

$("#click").live("click",function() { 
    alert("works!"); 
}); 
-1

같은 문서의 끝 부분에 코드를 추가 $(document).ready()

$(document).ready(function(){ 
    $("#click").click(function() { 
     alert("works!"); 
    }); 
}); 
+1

이것은 성능을 희생하면서 솔루션을 오버 엔지니어링합니다. 이 코드는 항목이 비효율적 인 DOM에 추가 될 때마다 실행됩니다. – Dean

+0

'live()'가 jQuery v1.9에서 삭제되었으므로 더 이상 사용하지 않는 것이 좋습니다. –

0
$(document).ready(function(e) { 
//TO DO your code goes here   
}); 
0

"/ body"태그로 스크립트 태그를 변경하기 만하면됩니다. 그러면 브라우저가 DOM을 만들고 스크립트를 하나씩 읽을 수 있습니다! 건배!

관련 문제