JS两个如果声明

时间:2016-03-24 03:35:28

标签: javascript if-statement

我写了一个javascript代码,如果你正在浏览Firefox,如果调整窗口大小以弹出警告框。但是,我的知识还不足以看出我编写的代码中的错误在哪里。如果有人可以帮助我,我将非常感激。提前谢谢。

$('FirefoxChecker').ready(function() {
    if (navigator.userAgent.indexOf("Firefox") > 0) && (window.onresize){
        alert("Some text here");
    };
});

2 个答案:

答案 0 :(得分:4)

错误地格式化条件语句

$('FirefoxChecker').ready(function() {
    if (navigator.userAgent.indexOf("Firefox") > 0 && window.onresize){
        alert("Some text here");
    }//; no semicolon
});

您可以在一个语句中包含任意数量的条件,例如

if( condition1 && conditio2 || condition3) { }

您的初始陈述是彼此断开的。

if( condition1) && (condition2) {} //is incorrect of course

YET!我们可以做这样的事情,它的作用是清理声明或使声明更准确。

             //group1                       //group2
 if( (condition1 && condition2) || (condition3 && condition1) ) 
   1 2                        2    3                        3 1

我在下面添加了数字,它们对应于它所属的每个括号。

正如其他人所说window.onresize不是一个可测试的财产,但是你得到了这个,并希望能够继续前进。我们可以测试onresize,但同样如此

if("onresize" in window) {}

答案 1 :(得分:3)

  

window.onresize是一个不属性的事件。

修改:正如评论中 EasyBB 所述,onresize是窗口的属性,但其初始值为null,除非我们定义一个。它希望value成为eventHandler,在resize事件发生时会调用{。}}。

试试这个:

window.onresize = function() {
  if (navigator.userAgent.indexOf("Firefox") > 0) {
    alert("Some text here");
  }
};

要在完成resize时调用某些内容,请尝试以下操作:

var timeOut;
window.onresize = function() {
  clearTimeout(timeOut);
  timeOut = setTimeout(function() {
    if (navigator.userAgent.indexOf("Firefox") > 0) {
      alert("Some text here");
    }
  }, 200);
};