2012-10-15 6 views
3

클릭 할 수있는 div를 클릭 해제 한 다음 다시 클릭하십시오. 내가 가진 것은 효과가 없습니다. 어떤 제안? 감사.jQuery 바인드 해제 후 바인드

$('#a, #b, #c').on('click', function(e){ 
     $('#a, #b, #c').unbind('click'); 
     // some stuff 
     // bind again: 
     // this doesn't work: $('#a, #b, #c').bind('click'); 
    } 
+1

또한 호버에 대한 제안 (바인딩 해제 나중에 바인딩). 감사. – ialphan

+1

왜'toggleClass'를하고 클래스 존재를 확인하지 않습니까? – ahren

+0

'바인드 클릭'의 기능이 누락 되었습니까? –

답변

6

당신은 핸들러 함수 // this doesn't work: $('#a, #b, #c').bind('click'); 누락 ".OFF"사용할 필요가에,

$('#a, #b, #c').bind('click', clickHandlerA); 

function clickHandlerA() { 
    $('#a, #b, #c').unbind('click'); 
    // some stuff 
    // bind again: 
    // this should work: 
    $('#a, #b, #c').bind('click', clickHandlerA); 
} 
+0

그래,이게 효과가있다. – ialphan

+0

unbind를 사용하면 더 구체적이라고 생각합니다 : $ ('# a, #b, #c'). unbind ('click', clickHandlerA); 이 방법은 당신이 당신의 관심사를 그냥 풀어주고 있다는 것을 확신합니다. –

1

에 "바인딩 해제"u는 당신이 .. 당신이 필요가 다음과 같은 것입니다 바인딩 할 때 http://api.jquery.com/off/

$('#a, #b, #c').on('click', function(e){ 
    $('#a, #b, #c').off('click'); 
    // some stuff 
    // bind again: 
    // this doesn't work: $('#a, #b, #c').bind('click'); 
} 
+1

.off는 .unbind를 수행하는 더 적절한 방법이지만 내 문제가 해결되지 않습니다. 나는 그것을 바인딩해야합니다. 감사. – ialphan

관련 문제