2013-06-19 4 views
9

jquery의 준비 함수에서 body에 맞춤 이벤트 핸들러를 연결하려고합니다. 즉시, 나는 커스텀 이벤트를 성공적으로 트리거하고있다.jquery - 맞춤 이벤트 트리거

$(function(){ 
    $("body").on("test", function(){ 
     alert("test triggered"); 
    } 
    $("body").trigger("test"); 
} 

그러나 콘솔에서 트리거하면 아무 일도 발생하지 않습니다. 왜?

+0

구문 오류 ... – Musa

+0

.on - 하나 이상의 이벤트에 대한 이벤트 처리기 함수를 선택한 요소에 연결합니다. 여기에 이벤트가 무엇입니까? – zod

+2

@dementic 편집에서 코드를 변경하지 마십시오 – Musa

답변

5

당신이 구문 오류 둘째

$(function(){ 
    $("body").on("test", function(){ 
     alert("test triggered"); 
    }); < ---- Missing this 
    $("body").trigger("test"); 
}); 

콘솔에서 이벤트를 트리거 할 수 있습니다 , $(function() {});형태 폐쇄과 같이 내부의 메소드에 액세스 할 수 없습니다.

예상대로 작동하려면 스크립트 파일에 디버그 지점을 넣은 다음 이벤트를 트리거하십시오. 이벤트가 범위에 있으므로 현재 작동합니다.

+3

물론 가능합니다. '$ ("body"). trigger ("test");'를 실행하면 콘솔에서 작동합니다. 왜 효과가 없을까요? '$'는 전역 변수입니다. –

+0

구문 오류에 대해 사과드립니다. 이벤트 청취자가 종료 시점에서 발생하는 이벤트를 듣지 못한다는 사실을 알지 못했습니다. 감사! – JJK

4

코드가 올바르게 포맷되지 않은 것 같습니다. 디버그 콘솔에서 확인하십시오.

이 작업을 시도 할 수 있습니다 :

는 첫째
$(function(){ 
    $("body").on("test", function(){ 
     alert("test triggered"); 
    }); 
    $("body").trigger("test"); 
}