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()方法包含我的新元素。我在正确的轨道上,如果是的话,我错过了什么?
任何有关这方面的指导将不胜感激。
答
尝试下面的内容!
$(".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(){});
'$( 'parent_selector')。在( '变',“event_selector '',function(){});' – MH2K9 2014-08-29 18:08:17
'$('#orderDetail').ready(function(){'也是错误的。 ,“[id^= PN_]”,function(){console.log(this.value);});' – epascarello 2014-08-29 18:09:30