如何在jquery中恢复click事件

时间:2011-01-28 07:33:03

标签: jquery javascript-events

我有

  

解除绑定

特定条件的点击事件。之后,我想恢复点击事件。如何做到这一点?

      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>

这里当前一个类没有最后一个锚时我想触发点击跨度

3 个答案:

答案 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会自动再绑定它。