我对简单的 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 在一秒钟内淡出!不是在 20000 毫秒之后。在此之后,如果再次放置鼠标以运行 changeContent4() 一切正常。如果气泡淡出和将鼠标放在 changeContent4() 启动器上之间的时间超过一秒,它会工作并等待 20000 毫秒。不到一秒,气泡大约显示第二...
什么会导致这种情况?即使气泡从屏幕上消失,fadeOut 是否仍在运行,因此它不会重置 BOffi 计数器?哪个可能只剩下 1 秒或更短的时间,然后在那神奇的一秒后再次运行 BubbleOff?