gpt4 book ai didi

jQuery .on() 的麻烦

转载 作者:行者123 更新时间:2023-12-01 07:20:57 26 4
gpt4 key购买 nike

好吧,伙计们,我以前已经非常成功地使用过 .on ,但是,这次它没有按预期工作,因为它根本无法识别动态元素!

通过访问 http://www.MetalGains.com 查看问题。单击“查看演示”,然后使用演示凭据登录。如果您单击“铅笔”,您将看到编辑功能起作用。但是,如果您添加资源,然后单击已添加的铅笔,您将看到它不起作用。

在某些时候,这行代码会被动态添加:

 <div class='edit-item'><a name='"+$id+"' href='#add-asset-"+status+"' class='edit'></a></div>

我想要调用的 JavaScript 如下。请注意,它确实适用于页面加载,但不适用于任何动态内容。我错过了什么?

$(".edit-item .edit").on('click', function(){
return false;
}).each(function(){
$(this).fancybox({
afterClose: function(){
//we have to remove this class so that if someone tries to add a new asset it will use the
//add script and not the update script
$(".asset-form").removeClass("update");
//We need to set the values back to empty so that they aren't prepopulated when someone
//tries to add an asset later.
$(".asset-form :input[name='type']").val("");
$(".asset-form :input[name='year']").val("");
$(".asset-form :input[name='quantity']").val("");
$(".asset-form :input[name='ounces']").val("");
$(".asset-form :input[name='paid']").val("");
$(".asset-form :input[name='date']").val("");
$(".asset-form :input[name='notes']").val("");

//we remove the hidden field that passes the asset id.
$(".asset-form :input[name='editId']").remove();



}//end afterClose
}); //end edit fancybox
}); //end each

顺便说一句,这非常有效:

   $(".note-img").on('click', function(){
return false;
}).each(function(){
$(this).fancybox();
});

与此动态添加的内容相关:

   <a href='#note-"+$id+"' class='note-img'></a><div class='note' id='note-"+$id+"'>"+$notes+"</div>

最佳答案

使用 on 进行事件委托(delegate)的正确方法是:

$(document).on('click', '.edit-item .edit', function(){

或者:

$('#staticParent').on('click', '.edit-item .edit', function(){

如果 edit-item 是静态的:

$('.edit-item').on('click', '.edit', function(){

实际上 on 与旧的和已弃用的 live 方法不同,live 从文档对象委托(delegate)事件,但使用 on 方法,您应该指定哪个静态父元素文档对象应用于事件委托(delegate)。

关于jQuery .on() 的麻烦,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13784985/

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