2010-02-04 66 views
2

在下面的「.input」匹配一個標籤。在Internet Explorer中JQuery選擇框焦點問題

該代碼工作正常,除了在Internet Explorer中,我需要點擊一個選擇框兩次以獲得下拉列表中的所有瀏覽器。

$(".input").focus(function() { 
var rc = $(this).parents(".rc-input"); 
rc.removeClass("rc-input-default"); 
rc.addClass("rc-input-active"); 
}); 

如果我使用mousedown而不是焦點它的工作,但我沒有得到所需的效果時,Tab鍵?

<div class="rc-input"> 
    <select class="input"> 
    ... 
    </select> 
</div> 
+1

只是爲了驗證......你的'select'元素有一個CSS類'input'的? – scunliffe 2010-02-04 19:39:01

+0

你能否用標記來澄清這一點? – offner 2010-02-04 19:57:44

回答

3

這是IE中的一個bug。當你做之前版本8(包括通過改變類的名稱間接風格的變化)的任何變化在IE選擇框它再現了基本的Windows下拉小部件,它有它復位至關閉狀態的副作用。

在IE6-7,作爲一種解決方法,您可以用onfocusin代替onfocus;因爲這發生在選擇集中之前,重新設置不會關閉控件。或者只是使用一個簡單的CSS規則:focus優先於類的變化,讓IE6-7用戶放棄輸入凸顯。 (他們不值得的美眉!)

例如代碼結合這些方法見this answer

2

從jQuery的文檔:

焦點事件不會冒泡在Internet Explorer中。因此,依賴具有焦點事件的事件委託的腳本在跨瀏覽器時不能一致地工作。

0

您可以同時處理mousedown和焦點。