我试图在选择元素更改时触发函数。
由于 Ipad 在 on('change') 方面遇到问题,我还想绑定到 'blur',这在 Ipad 上工作得很好。
但是我不希望两个事件都触发该函数两次,所以我需要某种挂钩来确保两个事件是否都触发change and blur触发器,底层函数仅被触发一次。
这就是我现在正在做的事情,但是......不太好:
// 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.
问题:
有谁有更好的主意来确保模糊和更改仅触发一次功能?
感谢帮助!
尝试创建一个绑定到两个事件的函数,并添加调用该函数的超时。这样,如果该函数被多次调用,它只会运行一次。
像这样的事情(如果需要,您可以调整超时):
function blurChange(e){
clearTimeout(blurChange.timeout);
blurChange.timeout = setTimeout(function(){
// Your event code goes here.
}, 100);
}
$('#my_select').on('blur change',blurChange);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)