我在同一个按钮点击上取消绑定按钮的click事件。我想再次点击上面的按钮点击其他按钮点击。但它没有用。
padding-left
答案 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;