这段javascript闪烁代码获胜的原因是什么';不行?
我在一个web应用程序的两个js文件的第二个文件中有以下代码 它工作得很好,直到我将两个js文件合并为一个。然后js崩溃了这段javascript闪烁代码获胜的原因是什么';不行?,javascript,jquery,Javascript,Jquery,我在一个web应用程序的两个js文件的第二个文件中有以下代码 它工作得很好,直到我将两个js文件合并为一个。然后js崩溃了 function oBlink() { return window.setInterval ( function() { $("#sOr").css("background-color", function (){ this.switch = !this.switch; return this.switch ? "#F90" : ""
function oBlink()
{
return window.setInterval
(
function()
{
$("#sOr").css("background-color", function (){ this.switch = !this.switch; return this.switch ? "#F90" : "" });
}
, 500
);
}
我已将问题与代码隔离
this.switch = !this.switch; return this.switch ? "#F90" : ""
如果我去掉它,我的js的其余部分就可以正常工作了
我知道这里可能有很多外部变量,但我只是想和你们确认一下,上面的函数代码中没有任何错误
谢谢你看
它在浏览器中工作正常,但在Android emulator的某些设备上检查时失败
这可能是因为您在代码中使用了开关
,这在JavaScript中是一个保留字。只有基于ECMAScript 5的浏览器才允许使用as对象的属性
您可以声明CSS类并使用jQuery的方法,而不是使用标志。请确保在某个地方进行定义
switch=false
然后试试看
$(“#sOr”).css(“背景色”,函数(){this.switch=
!this.switch;return(this.switch?#F90:“#FFF”)})
检查浏览器控制台进行调试。我忘了提到-它在浏览器中工作正常,但在Android emulator的某些设备上检查时失败。当我把这句话拿出来时,它在模拟器中运行良好。你说的“js中断”是什么意思?没有回应?意外输出?或者别的什么?事情冻结了-例如js驱动的下拉菜单不起作用,jquery显示元素没有正确显示。让你知道,
switch
在JavaScript中是一个保留字,在许多其他语言中也是如此。虽然,你可以不受惩罚,因为你把它作为一个对象的属性使用,但是你应该三思而后行。这是不必要的——他设置了'This.switch=!this.switch'-not将自动否定对象中未定义的值,并生成一个true。请参阅@undefined的答案。但是如果开关根本没有定义,那么整个脚本将变得没有响应。为此,我已将其更改为使用toggleClass,它工作得很好!!!干杯