がinput type="number"
あり、フィールド内で上下矢印を使用して入力の値を変更しています。入力の最後のクリック/変更後に機能をトリガーしたい。
することにより、最終的なI入力後の平均値は1000ミリ秒(ユーザーが今クリック停止していることを私の仮定)のために変更されていません。
setTimeout()
関数を実行する 1000 ミリ秒を設定しましたclearTimeout()
.on('change')
が、入力を呼び出している場合でも、関数は最後ではなく最初の変更の1000 ミリ秒後に実行されます。
私が意味することを説明するために、簡単なJSFiddleをセットアップしました。div
"Hello World!" 最後にクリックするまで表示されるべきではありません。
入力の上矢印をすばやく (少なくとも 999 ミリ秒に 1 回) クリックすると、div
は表示されません。
ここで他の多くの同様の質問に目を通しましたが、それらはタイマー変数のスコープに関するものであり、ここでは当てはまらないと思います。
私は何を間違っていますか?
onchange は、入力がフォーカスを失ったときにトリガーされます。入力を試してください..ところで。ここでは jquery は必要ありません。
var timeOut;
document.getElementById("foo").addEventListener("input", function() {
clearTimeout(timeOut);
timeOut = setTimeout(function() {
document.getElementById("bar").style.display = "block";
}, 1000);
});
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加