jquery动态创建元素不触发onchange

问题描述:

我一直在研究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

尝试下面的内容!

$(".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(){});