我正在使用select。我想在用戶選擇一個值時觸發和事件。jquery select events
我正在使用事件「更改」,問題是,如果用戶打開選擇,但選擇相同的選項被選中,觸發器不會觸發。
如果選項與選擇的選項相同,用戶是否獨立選擇選項,是否有辦法捕獲事件?
謝謝。
我正在使用select。我想在用戶選擇一個值時觸發和事件。jquery select events
我正在使用事件「更改」,問題是,如果用戶打開選擇,但選擇相同的選項被選中,觸發器不會觸發。
如果選項與選擇的選項相同,用戶是否獨立選擇選項,是否有辦法捕獲事件?
謝謝。
我不知道它是否是一個跨瀏覽器的解決方案,但這樣的:
$("#mySelect option").click(function() {
// do sth
});
作品以及在Opera/Firefox瀏覽器。
我認爲你需要的選項是「點擊」而不是改變。
這不會按預期工作,因爲只要您打開選擇選擇您的選項,就會觸發事件。因此,如果您計劃在代碼中使用用戶選擇,則可能會產生誤導。 – ryanulit 2010-03-12 15:52:59
您可以使用綁定方法捕獲更改和單擊事件。這應該讓你捕捉最鍵盤和鼠標交互
$('selector').bind('click change',function() {})
如果我把改變問題是,當我點擊選擇查看選項被解僱。 – Patxi1980 2010-03-12 15:48:12
keyup和mouseout如何? 這個的最終目的是什麼?正如熊上面說的那樣,如果價值沒有改變,爲什麼你需要重新啓動一個事件? – 2010-03-12 16:35:14
我不能說Patxi,但在我的應用程序中,選擇頂部選擇選項將該值傳播到頁面上的其他選擇。反之亦然(在其他地方選擇一個選項不會改變頂部選擇的選定值)。我發現,如果用戶將頂部選擇更改爲'1',然後將其他幾個選擇更改爲'2',但是然後決定他確實希望它們全部爲'1',則他可以「選擇頁面頂部的''1'(這已經是選定的選項)。 – Weezle 2012-06-05 21:30:19
$('#selectID').change(function(){
if($(this).val() == "week"){
//trigger here
}
});
<select id="selectID">
<option>week</option>
</select>
我不知道這是你所需要的。 下面不是答案,而是一個竅門。
在我的情況下,我得到它的價值後,改變選擇框的值。
$("selector").on('change', function() {
var selectedValue = $(this).val().trim();
if (selectedValue == 'EXPECTED_VALUE') {
//do somethings
}
//change the value, so next time when you choose same option
//again the change event can be trigger
$(this).val('OTHER_VALUE');
}
其中OTHER_VALUE可能是EXPECTED_VALUE,並且有額外的空間。示例:EXPECTED_VALUE ='foo',然後OTHER_VALUE ='foo'。所以,你得到相同的值,當你通過
var selectedValue = $(this).val().trim();
我要評論得到了selectedValue,但我沒有足夠的聲譽:d
爲什麼你要重新火如果選擇不改變的事件? – 2010-03-12 15:25:43