在jquery事件上没有连接动态添加的元素

时间:2015-12-15 13:46:02

标签: javascript jquery

在dom准备就绪我有线事件

$('.someClass').on('input', function (e) {
   //  do something
});

在同一个我注入html元素的地方我添加了.someClass以包含同一事件的那个字段

var cssClass = "form-control";
if (myProperty == true) {
     cssClass = "form-control someClass";
}
('#myTable tr:last').after(
   '<tr>'+
   '<td><input class=' + cssClass + ' type="text"'</td></tr>'+
   '</tr>'
);

但是我在萤火虫里面被渲​​染为

<input class="form-control someClass" type="text"</td someClass="">

并且不会在.someClass事件

上获取此字段

2 个答案:

答案 0 :(得分:1)

解决方案是写:

$('body').on('input','.someClass', function (e) {
   //  do something
});

并修复您的代码:

$('#myTable tr:last').after(
   '<tr>'+
   '<td><input class=' + cssClass + ' type="text"/></td></tr>'
);

答案 1 :(得分:0)

嗯......您是不是错过了输入类中的引号(“)?

此外,您没有正确附加td和tr结束标记。尝试这样的事情:

$('#myTable tr:last').after(
    '<tr>' +
    '<td><input class="' + cssClass + '" type="text" /></td>' + 
    '</tr>'
);