2011-04-11 13 views
1

如何使用onmouseover下拉選擇列表而不是點擊它。 選擇列表不能在JavaScript中點擊來模擬。 例如:onmouseover="(this.click())"如何通過'onmouseover'刪除選擇列表?

在javascript中設置'選擇列表的大小'='其長度'並不能準確地模擬點擊事件,因爲相鄰的佈局發生了變化。 我嘗試使用z-index和position屬性,但沒有幫助。

回答

3

下面是一個老氣devshed後

Select box expand onMouseOver - Dev Shed

這裏一個聰明的黑客在行動的例子:

http://jsfiddle.net/87nyG/1


我個人更喜歡第三方或自定義解決方案,而不是剽竊<select>元素

+0

感謝雖然你給的例子只在某些情況下工作。例如。如果你想在選擇元素的右側顯示某些內容,那麼會出現問題...因此,將使用一些第三方解決方案。 – user646093 2011-04-12 10:08:51

0

剛剛遇到了這個問題。我知道這已經回答了,但如果有人來這裏尋找一個更優雅的解決方案,你可以使用jQuery做到這一點:

$("#select_id").hover(
    function(){ 
     $(this).attr('size',13); //My select had months, so 13 was appropriate. obviously you can change this 
     $(this).css('position','absolute'); //prevents sibling elements from being pushed down 
    }, 
    function(){ 
     $(this).attr('size',0); //resets select on mouseout 
    } 
); 

這將防止「黑客」在HTML的標籤select