jQuery忽略第二个条件[重复]

Posted

技术标签:

【中文标题】jQuery忽略第二个条件[重复]【英文标题】:jQuery ignoring second condition [duplicate] 【发布时间】:2018-08-13 07:03:29 【问题描述】:

我编写了一个 jQuery 函数,我打算在某个元素具有焦点时检查何时按下 shift 键。

下面是我写的代码

$(document).keyup(function (e) 
    if (e.which === 9 && e.shiftKey) 
        if ($(".focus > a").focus) 
            alert("test");
        
    
);

但是,无论.focus > a 是否具有焦点,按下 shift 键时警报似乎都会起作用。我在这里犯了错误还是这是一个错误?

【问题讨论】:

focus 是一种方法,因此,它不是用来检查元素是否获得焦点,而是在该元素获得焦点时绑定事件。 【参考方案1】:

if ($(".focus > a").focus 将检查$(".focus > a") 对象中是否有定义为focus 的属性。因为它的存在,所以你的条件永远为真。

所以改成:

if $(".focus > a").is(":focus") .....

Using jQuery to test if an input has focus

【讨论】:

您不应该回答重复的问题。并且由于您链接到该问题,您知道它是重复的。 @FedericoklezCulloca 不,我认为这个问题的真正意义是if 条件的设计方式,而链接的问题直接要求一种方法来检查它是否集中。 - 这就是为什么我没有标记为欺骗 检查this,尤其是“什么时候两个问题被认为是重复的?”部分。对我来说,这属于该部分的第二段。 This includes not only word-for-word duplicates, but also the same idea expressed in different words. - 我的想法是可能还有另一个 if 检查像 if $( ".myClass).attr 或其他东西 - 在这种情况下,我在答案顶部的简短解释也将切中要害......我不知道谁的意见更适合这里...你觉得呢? 我认为,由于社区中没有其他人愿意将其标记为重复,因此我们可能已经很好了。祝你有美好的一天:)

以上是关于jQuery忽略第二个条件[重复]的主要内容,如果未能解决你的问题,请参考以下文章

Scanf被忽略[重复]

jquery 验证仅验证第一个字段 - 其他字段被忽略

如果第一个通知在 swift 中被忽略,则安排第二个通知(或者如果通知被忽略,则完成任何操作)

XmlTextReader 忽略第二个和第三个 Profile 元素

忽略第二个 if 语句

从qt中第二个图形视图的场景中忽略drawForeground()