gpt4 book ai didi

jquery - 如何避免 jQuery on() 方法绑定(bind)两次?

转载 作者:行者123 更新时间:2023-12-01 03:34:31 24 4
gpt4 key购买 nike

我想在加载某些数据后触发窗口调整大小的自定义作业:

function doJob() { 
...
}

DataLoaded() {
$(window).on("resize", function() { doJob(); });
}

但是DataLoaded可以发生多次,我如何确保doJob()只绑定(bind)一次?

PLEASE NOTE, bind once, but can be executed multiple times, so $("...").one("...") is not my goal

国际海事组织:

  1. set a global variable isBind to check if method is bind, which looks redundant
  2. $(window).off("resize").on("resize", ....), I'm not sure if calling off() first is a safe way

最佳答案

您可以像这样设置标志变量:

var didJob = false;
DataLoaded() {
$(window).on("resize", function() {
if(!didJob){
doJob();
didJob = true;
}
});
}
<小时/>

但我不确定您如何多次调用 DataLoaded 函数,因为在该函数内您还检查窗口大小调整。因此,不应该多次调用它。也许你想要这样:

$(window).off("resize.DataLoaded").on("resize.DataLoaded", function() {
doJob();
});

在前面的示例中,您会看到 resize.DataLoaded 并且 DataLoadedevent namespace 。首先,取消 resize 事件与 DataLoaded 命名空间的绑定(bind),然后将 resize 事件与 DataLoaded 命名空间绑定(bind),这样它就不会影响任何其他 resize 事件。

关于jquery - 如何避免 jQuery on() 方法绑定(bind)两次?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38758422/

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