我想使用 one只执行一次特定函数的 jQuery 函数,但与 on 结合使用jQuery 函数,因为元素尚未渲染。
因此,我需要以这种方式使用“on”函数,以便为未渲染的元素绑定(bind)该函数。
$(document).on('click',',myElement',function(){
});
如何实现“one”函数以便仅在第一次单击元素时执行我的代码?
最佳答案
.one()
方法支持事件委托(delegate)。这意味着回调运行一次,而不是每个匹配元素运行一次:
$(document).one('click', '.myElement', function() {
// Do stuff
});
但是,如果您希望事件处理程序对与选择器匹配的每个元素执行一次,最简单的解决方案可能是在处理程序执行后向元素添加一些数据。然后,您可以检查该数据是否存在,以确定是否继续处理事件处理程序:
$(document).on('click', '.myElement', function() {
if (!$(this).data("done")) {
// Do stuff
} else {
$(this).data("done", true);
}
});
关于jQuery - 与 one() 和 on() 函数的组合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13156065/