事件处理程序jQuery重新访问

时间:2012-10-12 15:43:13

标签: jquery events

我的代码如下:

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

}

然后在<body>标签中,我有下面的按钮

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

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

但点击事件永远不会再次受到约束。谁知道为什么?

2 个答案:

答案 0 :(得分:2)

当你重新点击click事件时,你需要给它一个处理程序 ..否则不会对该事件采取行动..

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

        // What you want to do

    });

OR

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

    // What you want to do
});

另请注意,频繁绑定和取消绑定是反模式 ..如果可以,则需要避免使用

答案 1 :(得分: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);
});