2010-03-11 58 views
2

我有一個選項,它帶有id'option1'。 option1是頁面加載時當前選擇的選項。選擇選項(jQuery)上的事件綁定問題

在我的$(document)。就緒,我有:

$(document).ready(function() 
{ 
    $("#option1").click(function() 
    { 
     alert("Testing"); 
    }); 
}); 

然而,從未顯示警報和事件永遠不會觸發!選擇選項本身與選擇本身不同,是不是可能或某事有事件?

注:

  1. 我不認爲我可以綁定到選擇的點擊()事件,我只是想,如果當前選擇的選項點擊/再次選擇的事件觸發。
  2. 我不能使用select的change()事件,因爲我只想在點擊當前選擇的選項時觸發它,因此該選項不會改變。

由於

回答

2

1是正確的,至少在IE(它可以在Firefox)。 onclick不會爲option元素觸發。

+0

啊。 只有在當前選定的選項(總是在索引0處)再次被點擊的情況下,你能想出任何其他的方式來執行一些代碼嗎? – AndrewC

+0

@AndyC:在IE中,當點擊一個選項時,onclick事件將觸發select元素。如果它是一個下拉選擇,您可以測試以查看鼠標座標是否在選擇元素的邊界之外,如果該選項沒有改變,請執行您的操作。如果它是一個多選或列表,那麼我不太確定。 –

+0

對我來說,雖然它看起來像一個選擇元素的onclick事件觸發每當你點擊下拉,即在你點擊一個特定的選項? – AndrewC

1

綁定點擊一個選項是不可能的afaik。

看看Click event on select option element in chrome

基本上建議使用父級選擇,並檢查是否選中時,選擇特定的選項。

+0

問題是我不能使用select的change()事件,因爲我想執行代碼,如果選項_doesn't_沒有改變(基本上他們再次點擊當前選中的一個) 據我所知,change()只會在用戶選擇與已經選擇的選項不同的選項時觸發? – AndrewC

+0

不是最新的解決方案,但可以將當前值存儲在* cough * global * cough * var中,並將更改事件中的比較值與新值。 – Fabian

0

給每個選項相同的類。例如 <select id='options'><option class='opt' value = '1'>option1/<option class='opt' value = '2'>option2</option></select> 現在來聽一個事件,你可以這樣做:$('.opt').on('click', function(){ alert($('#options').val());});