fre*_*ent 15 javascript jquery events jquery-mobile
我正在尝试在更改select元素时触发函数.
由于Ipad在on('change')上有问题,我也想绑定到'blur',这在Ipad上工作正常.
但是我不希望两个事件都触发该函数两次,所以我需要某种钩子来确保是否更改和模糊触发器,底层函数只触发一次.
这就是我现在正在做的事情,但......不是很好:
// 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
})
}
Run Code Online (Sandbox Code Playgroud)
如果您可以使用所有可模糊的可触摸设备,则此功能正常.
问题:
有没有人有更好的想法确保模糊和更改只触发一次功能?
感谢帮助!
Roc*_*mat 27
尝试创建一个绑定到两个事件的函数,并添加一个超时来调用该函数.这样,如果多次调用该函数,它将只运行一次.
这样的事情(你可以根据需要调整超时):
function blurChange(e){
clearTimeout(blurChange.timeout);
blurChange.timeout = setTimeout(function(){
// Your event code goes here.
}, 100);
}
$('#my_select').on('blur change',blurChange);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
25298 次 |
| 最近记录: |