javascript - jQuery .on ("click"...) 动态创建的元素不起作用

标签 javascript jquery

所以我在使用 jQuery“.on”函数和动态创建的元素时遇到了一些令人不安的结果,我使用的代码是这样的:

这在运行时的某个时候在函数中随机调用:

$(".activity-feed").append('<div class="feed-story big-feed-story feed-story-comment multiline-feed-story">\
        <div class="photo-view inbox-size photo-view-rounded-corners">\
            <div class="comment-icon">\
            </div>\
        </div>\
        <div class="comment-content">\
            <div class="delete ucomment-delete click-target" id="ucomment-'+uqid+'" tabindex="-1" style="outline:none;"></div>\
            <span class="feed-story-creator"><a href="/user/'+uid+'/'+username+'">'+username+'</a>&nbsp;</span>\
                <span class="comment-text">\
                    <span>\
                        <span style="white-space: pre-wrap;">'+$(".comment-box").html()+'</span>\
                    </span>\
                </span>\
            <div>\
                <span class="feed-story-footer"><span class="story-timestamp-view">'+time+'</span></span>\
            </div>\
        </div>\
    </div>');

然后这个函数应该允许删除评论(它在页面底部定义,而不是在文档准备好之后)

$(".delete").on("click", function() {
    alert('test....');
});

然而,我点击了“ucomment-delete”按钮,什么也没有发生:(,但是如果我点击加载时的评论,它会起作用
为什么是这样?我做错了什么?

最佳答案

尝试事件委托(delegate)

$(document).on("click", ".delete", function() {
 alert();
});

关于javascript - jQuery .on ("click"...) 动态创建的元素不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17872786/

相关文章:

javascript - jQuery promise 对象还有哪些其他类型?

javascript - 在托管应用程序中打开时, react js 应用程序的 css 样式被覆盖

javascript - 如何在 jQuery 中选择正确的元素

javascript - 编辑记录需要刷新页面

javascript - 如何在javascript中检索数组内部的项目而不是数组本身

Jquery 选择器在字段集中查找输入

c# - 如何去Jquery中的函数定义?

javascript - JS 将数组作为参数传递给递归函数

javascript - 使用百分号比较? % JavaScript

javascript - 将箭头函数分配给变量后导出与直接导出有什么区别?