为什么这两行代码之间的差异会导致导致jquery在iOS(Safari和Chrome)中无休止地循环的错误?循环没有出现在任何其他浏览器中。
if ($('[name="loadingTime"]') != undefined) {...
VS
if ($('.loadingTime') != undefined) {...
当我们以类而不是name属性为目标时,循环bug就消失了。任何想法或解释?
答案 0 :(得分:1)
经过进一步调查,在代码的另一部分中发现了该错误。这是发生的事情:
loadInterval: function() {
var settimer = $('[name="loadingTime]').val();
var interval = setInterval(function() {
if (settimer == 0) {
window.clearInterval(interval);
$('[id^="interstitial-container"]').remove();
};
settimer--;
if (settimer >= 0) {
$('.ncount').text(settimer);
}
}, 1000);
}
in
var settimer = $('[name="loadingTime]').val();
我们在 loadingTime 之后错过了收盘报价!其中js返回为未定义且iOS未正常处理它,因此 var settimer 未设置为零,因此每当调用该函数 loadInterval 时,它都是未定义的并且我们检查了我们是否需要根据undefined加载。在我们的情况下,它不是并且继续一遍又一遍地加载总是获得未定义的响应但没有错误。我想......