2012-05-16 5 views
1

이벤트를 비활성화하려면 jQuery.off()의 events-map 속성을 사용하려고하지만 이벤트를 비활성화하지 않는 것 같습니다.jQuery off()가 이벤트 맵과 함께 작동하지 않습니다.

jQuery 문서 off()에 따르면 events-map의 키를 사용해야하며 값을 무시해야합니다. http://jsfiddle.net/tNBMM/

간단한 호버 효과를해야 확인란을 확인 :

다음은 예입니다. 선택을 취소하면 off() 함수가 호출되며,이 함수는 이벤트를 비활성화해야하지만 그렇지 않습니다.

내가 뭘 잘못하고 있니?

답변

4

off()에는 on()과 동일한 기능 참조가 필요합니다. 현재 버전에서는 체크 박스를 클릭 할 때마다 새로운 mouseentermouseleave 처리기를 기술적으로 생성합니다. http://jsfiddle.net/tNBMM/2/


편집 : 여기에 예상대로 작동, on()off()에 대해 같은 함수 참조를 사용하는 업데이트 된 버전의

var enter = function() { $('#thing').css('background-color', 'red'); }, 
    leave = function() { $('#thing').css('background-color', 'white'); }; 
$('#show').click(function() { 
    var show = $(this).is(':checked'); 

    $('#thing')[show ? 'on' : 'off']({ 
     mouseenter: enter, 
     mouseleave: leave 
    }); 
});​ 
+0

바이올린 : 미래의 방문객을 위해, 여기에 작업 코드는 나를 위해 작동하지 않는 경우, 확인란을 선택 취소 한 후에는 호버 효과가 그대로 유지됩니다. : s –

+0

Doh - 올바른 설명이 있었지만 구현에 실패했습니다. :) 업데이트 된 링크를 사용해보십시오 (코드 예제도 업데이트 됨). – jmar777

+0

괜찮아요 :) –

관련 문제