Jquery不会将listener添加到新添加的字段中
Jquery doesn't add listner to a newly added field
在我的页面中,我有一个add按钮,用于向表中添加新字段:
$("#add").click(function () {
var rowCount = $('#scale tr').length + 1;
var newRow = '<tr id="row' + rowCount + '"><td>IP:</td><td>
<input type="text" **class="ip"** id="ip' + rowCount + '" name="ip' + rowCount + '"> </input></td><td>Name:</td><td> <input type="text" id="n' + rowCount + '" name="n' + rowCount + '"> </input></td><td id="ip' + rowCount + 'ave"></td><td id="add"></td><td></td></tr>';
console.log(newRow);
$("#scale tr:last").after(newRow);
});
这行添加得很漂亮。
我还在文档中准备了以下函数:
$(".ip").focusout(function(){
alert("here");
var id =this.id;
console.log(id);
if(!ipcheck(id)){
console.log("after function");
$("#"+id).css("color","red");
}
else(pinging(id));
});
每当我转到表的第一行(最初存在的一行)时,这段代码都会提醒我,但是对于新行它不起作用。我的想法是将所有的侦听器包装在一个函数中,并在任何时候发生变化时运行该函数,然而,由于我在代码中有很多这样的事情,我想知道是否有更好/更简单的方法来做到这一点。
由于您的input
已被动态添加到页面中,所有事件将不可用于此元素,在这种情况下,您需要应用事件委托,以便将这些事件附加到新添加的input
元素:
$("#scale tr:last").on("focusout",".ip",function() {
// Your code here
})
相关文章:
- JS动态添加字段-删除按钮不起作用
- 向laravel表单动态添加字段
- MaskMoney.js无法处理动态添加字段
- 流星:在创建帐户上添加字段
- 使用DB值动态添加字段到Form,php
- 使用object.freeze()扩展函数对象-can't添加字段
- 在ASP.Net web窗体/MVC中动态加载和添加字段
- 如何在使用Knex.JS添加字段时捕捉错误
- KendoUI 网格:动态向数据源添加字段
- Jquery- 动态添加字段 - 防止删除最后一个项目
- JQuery 无法获取动态添加字段的值
- 扩展 Ext.data.Model(动态添加字段)
- 如何使用角度 JS 添加嵌套的添加字段
- 如何在 CKeditor 上传中向 POST 值添加字段
- 在流星中向用户集合添加字段的正确方式
- 按数组分组并在主数组中添加字段和子数组
- 如何在JavaScript中为HTML上的动态添加字段执行乘法
- 如何在javascript中为html上的动态添加字段匹配id
- 在具有嵌套属性的轨道中动态添加字段
- 使用jquery添加字段