是(“:focus”)总是返回true

时间:2012-10-15 12:39:28

标签: javascript jquery

我问过this question因为我需要的东西而且我在使用jQuery时遇到了一些问题。所以我打开这个问题'因为其他人也可能有这个问题。

在我的另一个问题中发布的答案中,用户Felix告诉我要做这样的事情:

$(document).keypress(function(e) {
    e.preventDefault();

    if(e.which == 13 ) {
        if($("#searchInput").is(":focus")) {
          alert("search form submitted");
          return false;
        } else {
          alert("save form submitted");                  
          return false;
        }
    }
});
​

这似乎是我需要的,然而,条件if($("#searchInput").is(":focus")) 总是返回True,没有什么控制权重点。

任何人都知道为什么会发生这种情况或者我能做到的任何其他方式?

3 个答案:

答案 0 :(得分:2)

它可能是由旧版本的jquery引起的。 如果它早于1.6,那么:focus如果你没有定义它将不起作用。 版本1.6并且还有:focus选择器,我们不必单独定义它。 因此,只需升级您的库版本(如果它已旧)或在js文件中的某处定义:focus。在这里检查api为1.6: jquery version 1.6

答案 1 :(得分:2)

您的jQuery版本可能已过期。获取最新版本:

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.0/jquery.min.js" type="text/javascript"></script>

答案 2 :(得分:0)

我的jQuery版本已经过时了,我刚从here获得了最新版本,现在代码运行正常。