javascript - jQuery .off("click") 事件不起作用
问题描述
这已经困扰了我几个小时,并且仍然对它为什么不起作用感到困惑......当我使用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>
解决方案
one()
如果您想在第一次单击后分离事件,则可以使用 jQuery 。
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>
推荐阅读
- r - RStudio中从低到高的订单级别(格式:数字)
- ruby-on-rails - 使 form_for 选择字段可搜索?
- html - 当我将子项显示为浮出控件时,如何阻止菜单展开?
- python - 为什么 \n 不能使用 input() 命令?
- javascript - 是否可以检查 JS Map 是否包含一个值并让它返回它的键
- javascript - 如何将 tensorflow.js 模型权重转换为 pytorch 张量,然后返回?
- android - Java/Android:如何在不切断边缘视图的情况下显示一系列图像视图?
- sql - 更快的 SQL 语句 - 目前有一个缓慢的子查询 JOIN 会更快吗?
- hex - 这是什么文本:=B0=A1=C1=CB ...以及如何将其转换为普通文本?
- python - 在 python 中安装 Latex 以更改绘图的字体