単純な JavaScript といくつかの ajax に問題があります。
次のような JavaScript 関数を呼び出すリンクがあります。
<div id="Button11" onmouseover="changeContent4()">Actions</div>
上記で呼び出される Javascript 関数は次のようになります。
function changeContent4()
{
BubbleOn()
document.getElementById("text1").innerHTML='Some text here';
clearTimeout(BOffi);
var BOffi = setTimeout(BubbleOff, 20000);
}
これは機能し、BubbleOn 関数を実行し、テキストを要素 text1 に配置します。おそらく、BOffi タイムアウトを空にし、新しいタイムアウト 20000 ミリ秒を設定します。
ここにバブルオンがあります:
function BubbleOn() {
$("#bubble").fadeIn(function() {
})
}
そしてここにBubbleOffがあります:
function BubbleOff() {
$("#bubble").fadeOut(function() {
})
}
関数 BubbleOn と BubbleOff のように機能します。text1 要素を含む、bubble という名前の div を非表示または表示するだけです。BOffi がタイムアウトになると、BubbleOff 関数が実行されます。これはうまくいきます。問題は、BubbleOff が実行され、マウスが changeContent4() を実行するリンクのすぐ上に置かれると、バブル div が再び表示され、そこにテキストが再び配置されるが、バブル div が 1 秒以内にフェードアウトすることです! 20000ms以降ではありません。この後、マウスを再度配置して changeContent4() を実行すると、すべてがうまく機能します。バブルのフェードアウトからマウスを changeContent4() ランチャーの上に置くまでの時間が 1 秒よりも約ミリ秒長い場合、動作して 20000 ミリ秒待機します。1 秒もかからず、約 2 秒後にバブルが表示されます...
何が原因でしょうか? 画面からバブルが消えても、fadeOut がまだ実行されているため、BOffi カウンターがリセットされない可能性がありますか? 残り時間が 1 秒以下で、その魔法の 1 秒後に再び BubbleOff を実行できるのはどれですか?