我有
解除绑定
特定条件的点击事件。之后,我想恢复点击事件。如何做到这一点?
jQuery('#div1 span').click(function(){
if(jQuery('#div1 a:last').hasClass('current'))
{
jQuery('#div1 span').unbind(click);
}
}
jQuery('#div1 a').click(function(){
jQuery(this).addClass('current');
//here i want to resume click event for #div1 span is this possible
});
<div id ="div1"><span></span><a></a><a></a><a></a></div>
这里当前一个类没有最后一个锚时我想触发点击跨度
答案 0 :(得分:2)
您可以明确.bind()
help 和.unbind()
help 一种方法:
function my_click_handler(event) {
// click handler code
}
// bind that handler to #element
$('#element').bind('click', my_click_handler);
// remove the handler
$('#element').unbind('click', my_click_handler);
// bind again
$('#element').bind('click', my_click_handler);
答案 1 :(得分:1)
如果您只是在onclick事件处理程序中检查了clickHandlerEnabled
之类的变量而不是解除绑定并重新绑定事件处理程序,那可能会更容易。
如果它是特定于元素的,你可以将它存储在`data()``:
中$('.elem').click(function(e) {
if($(this).data('clickDisabled')) {
return;
}
});
并设置它:
$('#someElem').data('clickDisabled', true /* or false to re-enable clicks */);
答案 2 :(得分:0)
如果你在其他条件下再次调用Jquery click事件来恢复它,jquery会自动再绑定它。