2014-10-11 33 views
2

所以我的國家的名單,顯示爲一個select元素的下拉列表中,的MouseUp()對HTML事件選擇不工作

這裏是我的HTML:

<select id="myList"> 
<option>United States</option> 
<option>France</option> 
<option>Great Britain</option> 
<option>China</option> 
<option>Russia</option> 
</select> 

<span id="selectedCountry"> </span> 

我想什麼是能夠將我的#selectedCountry的值設置爲用戶實際選擇的選項。

我試圖建立一個.mouseUp() jQuery的事件,就像這樣:

$("#myList").mouseup(function() { 

    var val = $(this).val(); 
    $("#selectedCountry").text(val); 

}); 

是什麼奇怪的是,這個代碼觸發.mousedown()/.click()事件,但不是我想要它做的事...

有關如何使用mouseup()來獲取select元素值的任何想法?

PS:我知道一個focusout()事件會產生類似的結果(as explained here),但我想知道,如果有具體的關於select元素和mouseup()事件東西。

感謝

+2

爲什麼不使用'onchange'事件? – dfsq 2014-10-11 17:44:59

+0

就我而言,它似乎在我這裏工作得很好:http://jsfiddle.net/hf64pbfw/ – Winestone 2014-10-11 17:48:35

+0

@Winestone:也許它是瀏覽器相關的,但你的小提琴爲我產生一個mousedown()事件(使用最新版本的OsX的Chrome) – clecai 2014-10-11 18:02:26

回答

2

個人而言,我會用.change event

.mouseup()事件有Chrome和Firefox之間略有不同的行爲。另外,如果該值以編程方式更改,則.mouseup()事件不會捕獲對該值的更改,但.change()事件將會發生。

$("#myList").change(function() { 

    var val = $(this).val(); 
    $("#selectedCountry").text(val); 

}); 

FIDDLE

+0

@dfsq + robbmj:酷! .change()確實是正確的事件,沒有考慮過使用它。謝謝你們 – clecai 2014-10-11 18:01:33

+0

@clecai,不客氣。 – robbmj 2014-10-11 18:04:01

0

MouseUp事件處理JavaScript的 「鼠標鬆開」 事件。您試圖實現的目標應該由Change事件來完成,因爲當您更改瀏覽器中的下拉列表值時,該事件實際上會觸發。