選択要素が変更されたときに関数をトリガーしようとしています。
Ipad は on('change') に問題があるため、Ipad で正常に動作する 'blur' にもバインドしたいと考えています。
ただし、両方のイベントで関数が 2 回トリガーされるのは望ましくないため、変更とぼかしの両方がトリガーされた場合に、基礎となる関数が 1 回だけ起動されるようにするための何らかのフックが必要です。
これは私が今やっていることですが、... あまり良くありません:
// 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で間に合わせられる場合に機能します。
質問:
ぼかしと変更が関数を1回だけトリガーするようにするためのより良いアイデアを誰かが持っていますか?
手伝ってくれてありがとう!