gpt4 book ai didi

javascript - 如何绑定(bind)到模糊和更改,但只在 Jquery/Javascript 中触发一次函数?

转载 作者:可可西里 更新时间:2023-11-01 01:38:23 24 4
gpt4 key购买 nike

我试图在更改选择元素时触发一个函数。

由于 Ipad 在使用 on('change') 时遇到问题,我还想绑定(bind)到 'blur',它在 Ipad 上运行良好。

但是我不希望这两个事件都触发该函数两次,所以我需要某种 Hook 来确保 changeblur 都触发,即底层函数只触发一次。

这就是我现在正在做的,但是......不是很好:

// make sure binding is only assigned once
var compSel = $('#my_select');
if ( compSel.jqmData('bound') != true ){
console.log("bound");
compSel.jqmData('bound', true)
.on( $.support.touch ? 'blur' : 'change', function(){
console.log("trigger");
// run function xyz
})
}

如果您可以使用所有可触摸设备来处理 blur,那么此方法可行。

问题:
有没有人有更好的主意来确保模糊和更改只触发一次功能?

感谢您的帮助!

最佳答案

尝试创建一个函数,绑定(bind)到两个事件,并添加一个超时来调用该函数。这样,如果函数被多次调用,它只会运行一次。

像这样(如果需要你可以调整超时):

function blurChange(e){
clearTimeout(blurChange.timeout);
blurChange.timeout = setTimeout(function(){
// Your event code goes here.
}, 100);
}

$('#my_select').on('blur change',blurChange);

关于javascript - 如何绑定(bind)到模糊和更改,但只在 Jquery/Javascript 中触发一次函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11346359/

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