gpt4 book ai didi

javascript - 双事件处理程序和一个函数。如何防止代码执行两次?

转载 作者:行者123 更新时间:2023-12-03 08:15:59 24 4
gpt4 key购买 nike

我有一个回调函数绑定(bind)到两个事件(changefocusout)。但是,只有当我们交互的元素不是 checkbox 时,我才需要 focusout 发生。

这是示例代码:

$(document).on('focusout change', '.selector', function() {
if ($(this).is(':checkbox')) {
// Do stuff and prevent the focusout to trigger. HOW???
}

doStuff(); // Action that applies to both cases, but needs to be limited at one execution only
});

上面的代码将执行两次:

  • 当复选框被选中/取消选中时
  • 当您点击复选框外部时(失去焦点(模糊))

我尝试使用 .off,但它最终完全杀死了 focousout 处理程序,稍后我将需要它来处理其他非复选框的元素。

如何防止 focusout 处理程序触发某些元素?

最佳答案

你想做的是

$(document).on('focusout change', '.selector', function(event) {

event 是一个事件对象,它具有属性,其中之一是type。检查类型,您现在可以查看您的函数是否由于焦点转移更改而被调用,并根据需要运行代码

关于javascript - 双事件处理程序和一个函数。如何防止代码执行两次?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33935597/

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