jQuery在Chrome和Firefox中的工作方式不同

时间:2014-05-15 12:12:35

标签: jquery google-chrome firefox

我正在尝试使用autosuggest创建一个下拉搜索框,并且所有代码在Chrome中运行正常,但我在Firefox中遇到问题。这个问题很奇怪。当在Firefox中执行该函数时,如果条件为真,则执行进入if部分,但如果不是真的则不执行else部分。

$('body').click(function(){
    if($('.search').is(":focus"))
    {
         alert("is focused");
    }
    else if(!($('.search').is(":focus")))
    {
        alert("no");
    }
});

这是我写的代码。我无法理解它出错的地方,但在Chrome中,执行顺利进行。

3 个答案:

答案 0 :(得分:1)

可能你错过了html和body的css:

html,body{width:100%;height:100%;}

它工作正常: http://jsfiddle.net/lotusgodkk/Wu2Gh/1/

JS:

$('body').click(function () {
 if ($('.search').is(":focus")) {
    alert("is focused");
 } else if (!($('.search').is(":focus"))) {
    alert("no");
 }
});

答案 1 :(得分:0)

尝试删除第二个条件并将其设为elseelse if似乎没有必要,因为您的条件是boolean - truefalse

$('body').click( function() {
    if($('.search').is(":focus")) {
         alert("is focused");
    }
    else {
        alert("no");
    }
});

答案 2 :(得分:0)

你的JSFiddle(和你的代码)运作良好。

您没有注意到您的身体没有覆盖整个页面: enter image description here

  • 绿色区域:点击身体,场地聚焦,你得到一个"聚焦"
  • 红色区域:点击了正文,字段没有聚焦,你得到一个" no"
  • 橙色区域:身体未点击,你得到......没什么

添加此CSS以使其正常工作:

html,
body{
    width:100%;
    height:100%;
}