2011-05-18 63 views
1

我試圖改變其onfocus事件上的dropdownlist的CSS類來更改其背景顏色。IE7下拉列表不顯示在第一次點擊下面className更改onfocus

當用戶點擊下拉列表時,CSS類會發生變化(背景顏色發生變化),但直到再次單擊該選項列表纔會顯示。

這發生在IE7中。它在Firefox中正常工作。

我發現在這個問題上的任何地方也建議使用onfocusin事件的唯一建議:

http://www.eggheadcafe.com/software/aspnet/34297064/open-dropdown-list-only-with-double-mouse-click.aspx

但這絲毫不會有任何效果。

onfocus事件附加到下拉列表中後面的代碼:

ddl.Attributes.Add("onfocus", "setCssClass();"); 

JavaScript的集合類:

ddl.className = "Class1"; 

請幫幫忙!

回答

1

感謝任何人看着這個,但我自己找到了答案。

問題只在焦點來自幾個特定控件時才發生。這些控件有onblur事件,也設置下拉的類。

我以爲這些onblur事件會在onfocus/onfocusin之前運行,但似乎並非如此。當應用類更改時,onblur事件似乎會關閉下拉列表。

無論如何,我現在檢查哪個控件關注這些onblur事件,如果是下拉列表,我不會在onblur中運行主邏輯,現在所有的功能都按預期工作。

0

使用Internet Explorer時,放入硬編碼的「onfocus」事件將強制您有2次點擊。這是一個與IE瀏覽器已知的怪癖。雖然這個解決方案並不完美。如果您在.focus()回調中的此匿名函數中有示例提醒,則仍需要單擊下拉列表兩次。你只需要有創意。

作爲一種解決方法,只需使用jQuery.focus事件即可。

jQuery的([下拉列表對象])聚焦(函數(){

... put code here 

})。

相關問題