Firefox会执行if和else吗?

时间:2014-02-22 10:00:12

标签: javascript firefox

我遇到这个非常奇怪的事情进入firefox,可能我错过了一些东西,但不知怎的,以下代码中的if和else子句都被执行了?

if($.fx.off)
{
    widget.css({opacity: 1});
}
else
{
    widget.delay(delay).animate({top: "+=100"},10).animate({top: "-=100",opacity: 1}, 1000);
}

当跟踪ff以if行开始时,移至:widget.css({opacity: 1});,然后继续执行:widget.delay(delay).animate({top: "+=100"},10).animate({top: "-=100",opacity: 1}, 1000); ??

有人知道发生了什么事吗?

在这种情况下,

$.fx.off被定义为关闭。

一个自包含的最小例子是:

$.fx.off = false;
if($.fx.off)
{
    alert('me');
}
else
{
    alert('and me to!');
}

但是我怀疑它复制了......

1 个答案:

答案 0 :(得分:0)

问题是由2个个别故障引起的。一个我在代码中的其他地方犯了一个错误,这使得代码非常类似于else情况,所以看起来其他情况已经执行了。而第二个在Firefox中调试(一步一步)似乎很狡猾。它标记了未执行的行。

我通过实现从代码运行它的最小示例找到了这个。警报都会获得一个标记,就像它们被执行一样,但是在未执行的警报中它不会运行。所以我在调试器中不是错误。

然后我搜索动画的代码,发现它是一个与css3动画标签结合的错误。

问题解决了