settimeoutと.delay()の違い
1009 ワード
以前はsettimeoutと.delay()の使い方は同じように遅延していくつかの方法を実行するだけで、後で使う時実は違いがあることに気づきました
私が適用したシーンは、あるボタンをクリックするとtoastバーが表示され、2秒後に自動的に消えます.2秒以内にボタンを再度クリックして現在のtoastバーを閉じると、toastバーが再表示されます.
該当するユーザーがいない場合は、再フィルタしてください
ボタンをクリックして実行するjsコード
settimeout方式では予想通りに実行するが、$("#nobody_tip").delay(2000).fadeOut(1000)では、再度ボタンをクリックしたときに現在のtoastバーが先に閉じないという問題が発生しますが、なぜこのような問題が発生するのかは、呼び出しのためです.delay()後fadeOut(1000)はすでにキューに並んでいるが、delayが実行する前にこの要素を再操作するときは先に実行する.delay()後のfadeOut(1000)は、fadeOut(0)を実行しません.
私が適用したシーンは、あるボタンをクリックするとtoastバーが表示され、2秒後に自動的に消えます.2秒以内にボタンを再度クリックして現在のtoastバーを閉じると、toastバーが再表示されます.
該当するユーザーがいない場合は、再フィルタしてください
ボタンをクリックして実行するjsコード
function show_nobody_tip() {
$("#nobody_tip").fadeOut(0);
$("#nobody_tip").fadeIn(100);
setTimeout(function () {
$("#nobody_tip").fadeOut(1000)
}, 2000)
}
settimeout方式では予想通りに実行するが、$("#nobody_tip").delay(2000).fadeOut(1000)では、再度ボタンをクリックしたときに現在のtoastバーが先に閉じないという問題が発生しますが、なぜこのような問題が発生するのかは、呼び出しのためです.delay()後fadeOut(1000)はすでにキューに並んでいるが、delayが実行する前にこの要素を再操作するときは先に実行する.delay()後のfadeOut(1000)は、fadeOut(0)を実行しません.