2014-09-06 39 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