我正在进行一项使用while循环的简单测试。
以下是代码:
var ishovered = 0;
$('a.hovertest').hover(function(){
ishovered = 1;
},function(){
ishovered = 0;
});
while(ishovered == 1)
{
//execute function
}
我如何制作它以便while循环一直在测试,并且函数一旦徘徊就会执行? (是的,我知道我可以把这个功能放在悬停部分,我问这个是有原因的)
它实际上不一定是一个循环,我只需要一个函数来执行,一旦ishovered变为1.有没有办法监视它?
答案 0 :(得分:2)
小提琴:http://jsfiddle.net/9s3zE/1/
为此目的使用setInterval
。顺便说一下,你正在描述“轮询者”的行为。轮询器检查条件是否计算为true。如果为true,则激活一个函数。如果为false,则发生默认行为(可能无效)。在这种情况下使用while
循环是不明智的,因为当条件为真时浏览器将冻结。
var ishovered = 0;
$('a.hovertest').hover(function(){
ishovered = 1;
},function(){
ishovered = 0;
});
var showresult = $('#showresult');
window.setInterval(function(){
if(ishovered == 1){
showresult.text("You hovered");
}
else if(showresult.text() == "You hovered"){
showresult.text("Default text (not hovered)");
}
}, 100);