Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/75.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
这段javascript闪烁代码获胜的原因是什么';不行?_Javascript_Jquery - Fatal编程技术网

这段javascript闪烁代码获胜的原因是什么';不行?

这段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" : ""

我在一个web应用程序的两个js文件的第二个文件中有以下代码

它工作得很好,直到我将两个js文件合并为一个。然后js崩溃了

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,它工作得很好!!!干杯