[英]After appending an element the event click is not working on the appended element in jquery
我正在通过 Jquery 附加项目。 但是在附加后不能在附加项上绑定事件。 我附加如下>>
var item = '<div id="'+newInputId+'" class="col-md-9" style="padding-right: 0px;">';
item += '<input id="txtInScope" type="text" value="'+currentScopeVal+'" class="form-control" readonly="readonly"/>';
item += '</div>';
item += '<div id="inScopeActionDiv'+newInputId+'" class="col-md-3" style="padding-left: 2px;">';
item += '<button type="button" class="btn btn-warning btn-sm remButton" title="Remove this item">Remove Item</button>';
item += '</div>';
$('#inScopeDiv').append(item);
在附加这个之后,我想在上面的 remButton 类上绑定一个点击事件,如下所示 >>
$("#inScopeDiv").delegate(".remButton", "click", function(){
alert('you clicked me again!');
});
$('#inScopeDiv').on('click', '.remButton', function() {
alert("working");
})
$('.remButton').live('click', function() {
alert('live');
})
但没有结果。 任何人都可以请帮助我吗?
将它绑定到一个非动态但始终在 DOM 中的父级上。
$('.remButton').live('click', function() {
alert('live');
})
jquery 方法 live 不再有效:
“从 jQuery 1.7 开始,.live() 方法已被弃用。使用 .on() 附加事件处理程序。旧版本的 jQuery 用户应优先使用 .delegate() 而不是 .live()。”
来源: jquery live
关于事件附件的小说明:
您必须意识到要添加事件的目标在调用添加事件函数之前存在(在这种情况下使用 jQuery 的方法)。
另一方面,与 jquery 一起存在的方式是使工作成为事件附件,而之前不存在元素:
$('html').on('click', '#inScopeDiv .remButton', function () {
alert('works!');
});
每次添加项目时都需要添加侦听器:
$('#inScopeDiv').append(item)
.off() //unbind old listeners so no duplicate listeners
.on('click', '.remButton', function() {
alert("working");
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.