[英]jQuery .off(“click”) event does not work
这已经困扰了我几个小时了,仍然困惑为什么它不起作用...当我使用table.off("click");
它的工作原理,但也会取消绑定没有id = multi的第一个孩子的点击事件...
var table = $("table#datatable") var button = $(".generate") function turnOffClick() { console.log("button clicked") var multiButton = $("label#multi") multiButton.off("click"); } table.on("click", button, turnOffClick)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <table id="datatable"> <tr> <td> <label class="generate">Generate</label>   <label class="generate multi">Generate Multi</label> </td> </tr> </table>
如果要在第一次单击后分离事件,可以使用jQuery one()
。
var table = $("table#datatable") function turnOffClick() { console.log("button clicked"); } table.on("click", ".generate:not(.multi)", turnOffClick); table.one("click", "label.multi", turnOffClick);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <table id="datatable"> <tr> <td> <label class="generate">Generate</label>   <label class="generate multi">Generate Multi</label> </td> </tr> </table>
您从表中获取事件但从标签中删除事件。
$( "table#datatable td label" ).bind( "click", function() {
console.log( "Sample" );
var multiButton = $("label#multi");
console.log(multiButton);
$( "label#multi").off( "click" );
});
});
事件在table#datatable
不在label#multi
table#datatable
中
尝试此解决方案:
var table = $("#datatable td")
var button = $(".generate")
function turnOffClick() {
console.log("button clicked")
var multiButton = $(this)
multiButton.off("click");
}
table.on("click", button, turnOffClick)
您在所有行中添加事件单击,然后该函数将删除单击行中的事件
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.