gpt4 book ai didi

javascript - 为什么在 Jquery 中添加 "blocker"类后我的事件绑定(bind)不再触发?

转载 作者:行者123 更新时间:2023-11-30 10:33:26 27 4
gpt4 key购买 nike

我有这样一个搜索输入的绑定(bind):

$(document).on('tablebeforefilter.results_filter',
'#results_table:not(.bound)',
function (e, data) {
e.target.class += "bound";
// stuff
});

我正在使用 bound 类来防止在重新加载页面时重新绑定(bind)元素(我正在使用 Jquery Mobile 所以这会在用户在两个页面之间来回切换。

我的问题是,这样做会正确设置绑定(bind),但它只会触发我的处理程序一次,推测是因为我将“绑定(bind)”类添加到元素。

问题:
为什么会这样?我认为 $(document) & some element 上的绑定(bind)集将被设置然后运行,无论我向该元素添加什么类。只有当页面被重新解析时,我的 bound 类才会阻止第二次附加绑定(bind)。如果我添加阻塞 bound 类,为什么我的函数不再触发?

谢谢!

最佳答案

.class 是一个字符串。因此,您将 "bound" 添加到字符串 "results_filter" 并获得 "results_filterbound" – 一个全新的类。因此 .on() 选择器不再匹配。如果你想使用.class,你也必须添加一个空白:

e.target.class += " bound";

这添加了一个类 bound 并保留了旧类。要轻松处理类,您可以使用 jQuery 的 addClass()removeClass()

关于javascript - 为什么在 Jquery 中添加 "blocker"类后我的事件绑定(bind)不再触发?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15496123/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com