2014-09-06 38 views
0

我有下面这段代码应该滑动输入焦点上的div,并在模糊上滑动。但唯一发生的事情是slideUp。事件类型表达式从来没有在焦点/模糊

所以我猜测e.type === "focus"永远不会因为某些原因评估为真。

有人知道这有什么问题吗?

// When input is focused/blurred, 
// toggle slide on input message except error. 
$form.on("focus blur", "input", function (e) { 
    var $div = $(this).siblings("div"); 

    if (!$div.has(".error").length) { 
     e.type === "focus" ? $div.stop().slideDown("fast") : $div.stop().slideUp("fast"); 
    } 
}); 
+0

显示一些HTML与此去。 – 2014-09-06 21:16:27

回答

0

当警报e.type,该事件被称为“的focusIn”和“事件的内容”因此(在Chrome),所以请尝试更改您的代码:

e.type === "focusin" 
+0

仅限Chrome?这意味着它不适用于其他浏览器? – 2014-09-06 21:19:40

+0

我刚才说它是Chrome中的“焦点” - 我不知道类型是依赖于浏览器还是由jQuery抽象。如果前者是这种情况,最简单的解决方案可能使用两个事件处理程序(一个用于焦点,一个用于模糊)。 – Matthias 2014-09-06 21:21:19