2012-10-15 72 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

在'bind click'中错过了函数? –

回答

6

你缺少处理函数// this doesn't work: $('#a, #b, #c').bind('click');当您尝试重新绑定..你需要的是类似下面,

$('#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

我认为最好更具体的解绑并做:$('#a,#b,#c')。unbind('click',clickHandlerA);通过这种方式,您可以确定您只是解除了您感兴趣的内容。 –

1

为“解除绑定” U上需要使用“.off” 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