2014-01-29 70 views
0

你好所以這裏是我在做什麼:困境與變化事件下拉

$("#categorys").change(function() { 
//$(document).on('click', '#categorys', function(){ 
     alert('changed or clicked');  
}); 

當我使用.change什麼也沒有發生,沒有錯誤的JS調試器,當我使用的單擊事件的同樣的下拉它返回警報。我想是能夠提醒(this.val)一旦下拉價值變動請幫助

+0

您是否將'#categorys'元素動態添加到頁面中? – Barmar

+0

[動態創建的元素上的事件綁定?]的可能重複?(http://stackoverflow.com/questions/203198/event-binding-on-dynamically-created-elements) – Barmar

回答

0

我用這個來解決這個問題:

$(document).on('change', '#categorys', function(){ 
     alert($(this).val());  


    }); 
+0

如果這解決了您的問題,那麼它幾乎肯定是由於到事件綁定後'#categorys'被添加到DOM的事實。原始語法是完全有效的,但要求元素在綁定時存在。通過使用'on'語法,您實際上將事件綁定到文檔,從而允許它捕獲來自動態添加元素的事件。 – Nucleon

1

這是因爲您使用事件委派爲您click事件,您需要爲change事件做同樣的:

$(document).on('change', '#categorys', function(){ 
    alert('changed or clicked');  
}); 

順便說一句,當你選擇了動態添加這種行爲纔會發生。