Javascript jQuery.off(“单击”)事件不起作用
这已经困扰了我几个小时了,我仍然很困惑为什么它不起作用。。。当我使用Javascript jQuery.off(“单击”)事件不起作用,javascript,jquery,Javascript,Jquery,这已经困扰了我几个小时了,我仍然很困惑为什么它不起作用。。。当我使用table.off(“单击”)时它可以工作,但也会在第一个没有id=multi的子项上解除单击事件的绑定 var table=$(“表#数据表”) var按钮=$(“.generate”) 函数关闭单击(){ console.log(“单击按钮”) var multiButton=$(“标签#多”) 多按钮关闭(“单击”); } 表.打开(“单击”,按钮,关闭单击) 生成 生成多个 您正在从表中获取事件,但正在从标签中删除事
table.off(“单击”)时代码>它可以工作,但也会在第一个没有id=multi的子项上解除单击事件的绑定
var table=$(“表#数据表”)
var按钮=$(“.generate”)
函数关闭单击(){
console.log(“单击按钮”)
var multiButton=$(“标签#多”)
多按钮关闭(“单击”);
}
表.打开(“单击”,按钮,关闭单击)
生成
生成多个
您正在从表中获取事件,但正在从标签中删除事件
$( "table#datatable td label" ).bind( "click", function() {
console.log( "Sample" );
var multiButton = $("label#multi");
console.log(multiButton);
$( "label#multi").off( "click" );
});
});
事件位于表#数据表
中,而不在标签#多
尝试以下解决方案:
var table = $("#datatable td")
var button = $(".generate")
function turnOffClick() {
console.log("button clicked")
var multiButton = $(this)
multiButton.off("click");
}
table.on("click", button, turnOffClick)
您可以在所有行中添加事件click,然后在单击的行中删除该事件。如果您想在第一次单击后分离事件,可以使用jQuery
var table=$(“表#数据表”)
函数关闭单击(){
控制台日志(“点击按钮”);
}
表.on(“单击“,”。生成:非(.multi)”,关闭单击);
表1(“点击”,“标签.多”,关闭点击)代码>
生成
生成多个
您正在对一个没有事件处理程序的元素调用off()
?我认为它有一个click事件处理程序,因为当我单击它时。。它在控制台上打印单词“button clicked”,该单词添加在具有类的标签上的“table.on”(“click”,button,turnOffClick)”。generate“事件处理程序位于table
元素上。如果要禁用usetable.off('click',button,turnOffClick)
No,则事件侦听器位于其祖先元素之一(table#datatable
)上。这就是为什么当您单击事件时会触发它。但是您没有明确地将事件侦听器添加到标签#multi-element
。因此,您无法删除一个。可能不是解决方案,但您的标签具有类multi
,并且您的代码-var multiButton=$(“label#multi”)
-引用带有#符号的id。要引用一个类,您需要:var multiButton=$(“label.multi”)
bind
?!!really@ZakariaAcharki您知道不使用bind()
的原因吗?只是好奇,因为它只是在v3中被弃用了。我个人使用()上的
,但那只是因为我更喜欢这个词:pas它只是在v3中被弃用了,它在两年前就被弃用了:D@ZakariaAcharki是的,最新版本。我是认真的-除了“它在最新版本中被弃用”之外,你有理由不使用bind吗?@ZakariaAcharki我在问一个真实的问题。如果你没有一个真实的答案,那就说出来,而不要表现得像个6岁的人。。我也可以用它做我的其他功能,因为它也很短,我可以帮助我的兄弟。