gpt4 book ai didi

javascript - 使用 .on 的附加内容的 jQuery 事件?

转载 作者:行者123 更新时间:2023-11-30 10:43:17 24 4
gpt4 key购买 nike

我已将内容(使用 ajax)附加到我的文档,但我的事件没有触发。我知道这可以使用 .live() 来完成,但我在某处读到它现在已被弃用?

这是我的代码(它在文档就绪时工作正常,但在新附加的项目上不工作):

$('li[id^="inv-"] a.close').on('click', function(){
var item=($(this).closest("li[id^='inv-']")).attr('id');
var id = parseInt(item.replace("inv-", ""));
$.ajax({
type: "POST",
url: "ajax-invi.php",
dataType: "html",
data: "id="+idboda+"&idinv="+id+"&borrar=ok",
success: function(data) {
noty({"text":"El invitado ha sido borrado"});
$("body").find('li#inv-' + id).remove();
}
});
});

和项目:

<ul>
<li id="inv-39">
<div class="row_field">
<label>Adri</label>
<a class="close" href="#invlist">Borrar</a>
</div>
</li>
<li id="inv-40">
<div class="row_field">
<label>Marga</label>
<a class="close" href="#invlist">Borrar</a>
</div>
</li>
</ul>

最佳答案

尝试

$('ul').on('click','a.close', function(){
var item=($(this).closest("li[id^='inv-']")).attr('id');
var id = parseInt(item.replace("inv-", ""));
$.ajax({
type: "POST",
url: "ajax-invi.php",
dataType: "html",
data: "id="+idboda+"&idinv="+id+"&borrar=ok",
success: function(data) {
noty({"text":"El invitado ha sido borrado"});
$("body").find('li#inv-' + id).remove();
}
});
});

通过这种方式,您将事件处理委托(delegate)给加载 DOM 时存在的 ul,并处理通过 AJAX 添加的元素的事件。如果加载 dom 时 ul 不存在,您可以委托(delegate)给 <body>标签

编辑 - live() 它实际上是 on() 的包装器(之前它是 delegate() 的包装器)但通常将事件处理委托(delegate)给 window这意味着该事件必须冒泡很多。取自 jQuery 源代码

live: function( types, data, fn ) {
jQuery( this.context ).on( types, this.selector, data, fn );
return this;
},

关于javascript - 使用 .on 的附加内容的 jQuery 事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9868955/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com