2013-05-20 2 views
0

를 클릭 한 후 발사하지 내 jQuery를이 샘플 코드가 있습니다.의 jQuery .click() 링크

<a name="itemX"></a> 
<div class="content">itemX</div> 

각 div 위에는이 파일의 모든 div에 대한 링크가있는 정렬되지 않은 목록이 있습니다. 이 링크 중 하나를 클릭하면 URL이 "/index.html#itemX"으로 변경됩니다.

첫 번째 링크를 클릭하면 나에게 "테스트!"라는 오류가 표시됩니다. 출력,하지만 내가 "#itemX" URL에있는 페이지에있을 때 click() 이벤트가 발생하지 않습니다. 이것은 의미가 있나, 아니면 내가 놓친 것입니까? 나는 이미 .on() 방법을 시도했다 ...

+0

'$ (문서) .ready (함수() { $()을 클릭 (함수() { 을 console.log는 ("테스트!"); // u는 세미콜론 놓친 }); }); ' – user1

+0

무엇이 문제입니까? [jsfiddle] (http://jsfiddle.net/tBbBR/)에서 잘 작동합니다. @ user2146515 Javascript에서 세미콜론이 누락 되어도 문제가 발생하지 않습니다. –

+0

http://learn.jquery.com/events/event-delegation/ - 문제와 관련이 있습니까? divs/anchor 태그가 동적으로 생성 되었습니까? –

답변

0

방화범은 분명히이 문제를 일으켰습니다 ... 설치 제거한 후 다시 설치했는데 이제는 문제가 없습니다 ... 어떻게 작동하는지 알 수 없습니다. '. 내용'.

-1

u는 console.log에 세미콜론을 놓쳤다. 또한 console.log() 뒤에 return false을 추가하면 #itemx가 표시되지 않습니다.

+0

돌아 오는 거짓 팁을 가져 주셔서 감사합니다! – Pieterjan

+0

앞에서 설명한 것처럼 누락 된 세미콜론으로 인해 오류가 발생하지 않습니다 [여기] (http://i.imgur.com/v3H5KFw.png) –

0

여러 브라우저에서이 문제가 발생했습니다. 대신 다음을 사용하여이 문제를 해결했습니다.

$(document).ready(function() { 
    $('.content').bind("click", function(){ 
     console.log("Test!"); 
    }); 
}); 

또는 mousedown 또는 mouseup 바인딩이 트릭을 수행 할 수 있습니다.

+0

감사합니다! Firebug로 인해 수정되었습니다 :) – Pieterjan

+0

['.bind()'] (http://api.jquery.com/bind/)는 ['.on()']의 구문 설탕에 불과합니다. http://api.jquery.com/on/). ['.click()'] (http://api.jquery.com/click/)는 동일한 코드를 실행합니다. – SoonDead

+0

Bind와 On은 동일하지만 click()은 작동하지 않지만 bind ("click", function() {})는 이전에 작동했기 때문에 달라야합니다. 그래서 확실하게 click()만으로도 다른 일이 일어납니다. –