有没有办法使用unbind()然后bind()与计时器?

时间:2012-07-16 18:59:29

标签: javascript jquery timer bind unbind

如果条件为真,我想在所有链接上使用unbind(),然后在1.5秒后再次绑定链接。我试过这个,但它不起作用:

   if ( /*some condition*/) {
     $('a').unbind();
     setTimeout(function(){
     $('a').bind();
     }, 1500);
   }

2 个答案:

答案 0 :(得分:3)

您无法执行此操作,因为.unbind()删除了事件处理程序,句点。有关它们的所有信息都将丢失。除非你已经在某个地方保留了一份单独的副本,否则你永远无法取回它们。

然后,您可以切换此条件,使其看起来好像处理程序根本没有绑定。

示例(仅用于说明 ;请不要使用全局变量!):

$('a').click(function() {
    if (window.doNothing) {
        return;
    }
    // do something
});

if ( /*some condition*/) {
    window.doNothing = true;
    setTimeout(function(){
       window.doNothing = false;
    }, 1500);
}

答案 1 :(得分:0)

您需要bind特定功能。