取消绑定后绑定click事件

时间:2015-10-20 21:18:23

标签: jquery

我在同一个按钮点击上取消绑定按钮的click事件。我想再次点击上面的按钮点击其他按钮点击。但它没有用。

padding-left

3 个答案:

答案 0 :(得分:2)

你不能真正重新绑定它,你将不得不再次添加整个回调函数。

为了使您更容易使用命名函数,对于较新版本的jQuery,您应该使用on()off(),如果您只想要事件,甚至可以使用one()每个元素触发一次的处理程序,当你使用ID时,你只有一个匹配的元素,所以:

function doStuff() {
    alert("in");
});

$("#showSelection").one("click", doStuff);

$("#kendowindow").on('click', function(){
     alert("in2"); 
     $("#showSelection").off('click').one("click", doStuff);
});

答案 1 :(得分:0)

您可以使用jQuery的.one()只运行一次首次点击事件:

$("#showSelection").one("click", function(){
    alert("in"); 
}); 

$("#kendowindow").click(function(){
    alert("in2"); 
    $("#showSelection").on("click", function(){
        alert("new event bound"); 
    });      
});

但是,我不确定你想要完成的场景是什么。使用此代码,如果用户单击kendowindow FIRST,则它将为您的showSelection单击分配第二个事件。我不确定这是不是你想要的。

答案 2 :(得分:0)

您可以按如下方式使用命名函数:



function bindUnbind() {
    console.log("in");
    //unbinding the button click
    $(this).unbind('click');
}

$("#showSelection").bind("click",bindUnbind);


$("#kendowindow").click(function(){
     console.log("in2"); 
     //want to bind the click event again but not working     
     $('#showSelection').unbind('click').bind('click',bindUnbind);           
});

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="showSelection">Show Selection</div>

<div id="kendowindow">Kendo Window</div>
&#13;
&#13;
&#13;