0

我在下面有这段代码:

$("#radar_play").click(function(){
console.log(this);
$(this).unbind('click');
$(this).bind('click');
....
.....
.....

}

然后在<body>标签中我在下面有这个按钮

<button id="radar_play'">PLAY ANIMATION</button>

对我来说,看起来我正在删除点击事件(确实有效)然后重新附加它。

但是点击事件永远不会再次被绑定。有谁知道为什么?

4

2 回答 2

2

当您重新绑定单击事件时,您也需要给它一个处理程序..否则该事件将不会被执行..

 $(this).unbind('click');
    $(this).bind('click', function() {

        // What you want to do

    });

或者

$(this).unbind('click').bind('click', function() {

    // What you want to do
});

另请注意,频繁绑定和取消绑定是一种反模式。如果可以,您需要避免它

于 2012-10-12T15:45:04.983 回答
0

您需要在重新绑定时指定一个处理程序,您可以命名您的闭包并按如下方式使用它:

$("#radar_play").click(function click_handler(){
   //Perform the onclick logic
   $(this).blabla...
   $(this).unbind('click');
   ....
   //now we want to bind again
   $(this).bind('click', click_handler);
});
于 2012-10-12T15:53:24.290 回答