JavaScript OR运算符影响setInterval

时间:2014-02-22 01:06:03

标签: javascript jquery setinterval operator-keyword

所以我在这里有三个功能,他们互相搞怪。

  • 第一个函数在具有奇特效果的元素中加载URL
  • 第二个函数检查元素是否为adblock
  • 最后,第三个功能每30秒更新第一个功能URL

看看:

$(document).ready(function() {

var update = function(element, url) {
    if ($(element).length) {
        $(element).effect("highlight", {color: "#f7f7f7"}, 2000); $(element).load(url);
   }
}

var adblock = function(adspace) {
    if ($(adspace).height() == 0 || $(adspace).length() <= 1) {
        window.location.replace("../disable-adblock");
    }
}

adblock(".coinurl");       

var refresh_div = setInterval(function() {
    update(".total-plays", "../logs/total-plays.txt");
}, 30000);

$.ajaxSetup({ cache: false });

}); //doc

现在的问题是,由于某种原因,第二个函数中的OR(||)运算符会禁用我的setInterval函数。但是,当我删除|| $(adspace).length() <= 1时,一切正常 - 现在接受广告拦截功能不适用于Chrome!

这里发生了什么?我是否错误地执行了OR语句,或者此脚本的顺序是否错误?

由于

1 个答案:

答案 0 :(得分:3)

长度不是函数,它是属性

var adblock = function(adspace) {
    if ($(adspace).length <= 1 || $(adspace).height() == 0) {
        window.location.replace("../disable-adblock");
    }
}