我有下面的代码块。它经历一个循环,通过循环改变背景位置。当我徘徊时,我试图阻止循环。我目前正在尝试使用布尔值hoveredOut
来执行此操作,当调用OutHandler
的{{1}}时,该值变为true。然而,HoveredOut仍然是真的,循环总是完成。现在它也总是停留在最后,永远不会重置为0。
所以我的问题:
hover()
做的事吗?它现在似乎没有用。hoveredOut
上空盘旋时,为什么循环没有停止?.headerGif
块时, 会重置,但我需要它来处理hoveredOut检查。希望你们能看出问题所在。
if(hoveredOut)
答案 0 :(得分:0)
要创建此类循环,您应该使用setInterval,并使用clearInterval停止它。
以下代码和fiddle
#container {
background: gray;
width: 200px;
height: 200px;
text-align: center;
padding-top: 40px;
}
#container.hovering {
background: green;
}
<div id="container"></div>
var ticker = 0;
var looper = false;
var tick_function = function() {
ticker++;
$("#container").text("ticker:"+ticker);
}
$(document).ready(function() {
$("#container").hover(function() {
$("#container").addClass("hovering");
looper = setInterval(function() {
tick_function();
}, 500);
}, function() {
$("#container").removeClass("hovering");
clearInterval(looper);
});
});