2014-08-29 81 views
0

我一直在研究jQuery中的.on()函數來更新動態表單的DOM並觸發新創建的下拉框的事件onchange。jquery動態創建元素不觸發onchange

我這裏掛一個小提琴:
http://jsfiddle.net/6y18mho8/10/

我相信是造成我的問題jQuery是在這裏:

$('#orderDetail').ready(function() { 
    $("[id^=PN_]").on('change',function(event) { 
     var PN = $(event.target).val(); 
     var ID = event.target.id; 
     alert('Successfully triggered by onChange from "'+ID+'"'); 
    }); 
}); 

的代碼將開槍的初始行,但不是在新創建的。同樣,從我讀過的所有內容中,我需要重新加載/重新定義DOM,以通過.on()方法包含我的新元素。我在正確的軌道上,如果是的話,我錯過了什麼?

任何有關這方面的指導將不勝感激。

+0

'$( 'parent_selector')。在( '變',「event_selector '',function(){});' – MH2K9 2014-08-29 18:08:17

+0

'$('#orderDetail').ready(function(){'也是錯誤的。 ,「[id^= PN_]」,function(){console.log(this.value);});' – epascarello 2014-08-29 18:09:30

回答

0

嘗試下面的內容!

$(".orderDetail").on('change', '[id^=PN_]', function(event) { 
    var PN = $(event.target).val(); 
    var ID = event.target.id; 
    alert('Successfully triggered by onChange from "'+ID+'"'); 
}); 
  • 如果您的jQuery 1.7版則可以使用delegate()
  • 爲1.7+使用.on這樣$('parent_selector').on('event', 'event_selector', function(){});