2011-04-27 3 views
0

동적으로 생성되는 일부 요소에 클릭 이벤트 핸들러를 바인딩하려고합니다. 그러나 단순히 페이지를로드하는 즉시 함수가 실행됩니다. 필자는 livequery 플러그인을 시도하고 그 원치 않는 습관이있는 .delegate도 시도했습니다.jQuery에서 .live를 사용할 때 실수로 함수가 실행됩니다.

$(".pika_thumb").live("click" ,(function() { 
    $("#video").hide(); 
    $(".pika_main").show(); 
})); 

어떻게하면 지정된 요소를 클릭하는 것보다 다른 이벤트에서 내 기능이 실행되지 않도록 할 수 있습니까?

+1

함수 주위의 괄호는 불필요하지만 설명 된 문제가 발생해서는 안됩니다. 이 문제를 일으키는 다른 것이 귀하의 페이지에 있다고 생각합니다. 이 클릭 기능 내부에 경고를 배치하고로드시 표시되는지 확인하십시오. –

+0

나는 그 안에 경고를했고 화재를 냈다. – henning

+0

괄호는 실제로 함수를 실행하는 것으로 보입니다. 필자는 예제 코드를 좀 더 자세히 살펴 보았어야했다. – henning

답변

0

유일한 명백한 오류는 function() { } 정의 주변의 대괄호입니다.

그러나 () 매개 변수 목록을 추적하지 않으면 즉시 호출되지 않습니다. 코드 스 니펫이 완성 되었습니까?

0

구문 :

$(".pika_thumb").live("click" , function() { 
    $("#video").hide(); 
    $(".pika_main").show(); 
}); 

확인 당신이 당신의 .pika_thumb 클래스에 클릭을 발사 뭔가가없는 경우. 브래킷에서 제외

0

, 내 마지막 작업 코드는 다음과 같습니다

$("#gallery").delegate(".pika_thumb", "mousedown" , function() { 
    $(".video-js").get(0).pause(); 
    $("#video").hide(); 
    $(".pika_main").show(); 
}); 

감사합니다 여러분!

관련 문제