要素入力の focusin で関数を 1 回だけトリガーしたい。次のコードは、無限ループで関数を呼び出します。
<input type="text" class="dateRangeEducLev">
$(document).on("focusin",".dateRangeEducLev",function(e){
alert("focusIn");
});
イベントを「onClick」に変更できますが、入力要素が既に選択されている場合でも、ユーザーが入力要素をクリックするたびに関数が呼び出されます。これは望ましくありません。
伝播を妨げるこの問題を回避しようとしましたが、うまくいきません。これはコードです:
$(document).on("focusin",".dateRangeEducLev",function(e){
alert("focusIn");
e.stopPropagation();
});
http://jsfiddle.net/r1b06udo/1/
伝播を停止する方法、または関数が一度だけ呼び出されるように制限する方法について何か考えはありますか?
更新: off() または one() を使用すると、ブラウザが更新されるまで関数の呼び出しが停止します。別の問題は、同じクラスの要素が複数ある場合、それらの機能が無効になることです。
http://jsfiddle.net/r1b06udo/2/
新しいアップデートがあります。アンバインドとバインドを選択します。あなたが見れば、それは最初のラウンドで機能します。しかし、あなたがまだ集中している場合、彼らは何もしませんが、あなたがまだ集中している場合、それはうまくいくでしょう.