我遇到这个非常奇怪的事情进入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!');
}
但是我怀疑它复制了......
答案 0 :(得分:0)
问题是由2个个别故障引起的。一个我在代码中的其他地方犯了一个错误,这使得代码非常类似于else情况,所以看起来其他情况已经执行了。而第二个在Firefox中调试(一步一步)似乎很狡猾。它标记了未执行的行。
我通过实现从代码运行它的最小示例找到了这个。警报都会获得一个标记,就像它们被执行一样,但是在未执行的警报中它不会运行。所以我在调试器中不是错误。
然后我搜索动画的代码,发现它是一个与css3动画标签结合的错误。
问题解决了