if子句不在递归函数中工作

时间:2013-12-29 08:06:48

标签: jquery if-statement

function fly() {
    $(".heli").animate({
        top: '-=50px',
        left: '+=25px'
    }, 1000);
    var x = $(".heli").offset().left;
    if (x == 500) {
        alert("match found");
    }
}
$(document).mousedown(function () {
    var Interval = setInterval(fly, 800);
})

在上面的例子中,为什么“fly()”的“if子句”没有给出任何结果?

2 个答案:

答案 0 :(得分:1)

此问题可能是因为您正在进行动画测试(x == 500) ,因此它不会增加预期的数量。

尝试将测试放入回调函数中:

function fly() {
    $(".heli").animate({
        top: '-=50px',
        left: '+=25px'
    }, 1000, function(){
        var x = $(".heli").offset().left;
        if (x == 500) {
            alert("match found");
        }
    });

}

答案 1 :(得分:0)

除了需要能够等于500的增量和初始位置(如果你能承受差异,可以测试X> = 500),

您还必须确保“.heli”元素定位为“绝对”或“固定”。无论您要求多少次,“相对”定位元素都不会改变位置。