Javascript JQuery.on()方法是否未触发?

Javascript JQuery.on()方法是否未触发?,javascript,jquery,Javascript,Jquery,我正在尝试使用JQueryon()方法。基本上,我正在尝试写一个类似于这里的警告框。如果你曾经尝试对自己的评论或帖子进行投票,你就会知道我在说什么 我有一个JS函数,如下所示,它只返回我的框和消息 function alert_box(msg){ return "<div class='alert-box'><p>" + msg + "<br /><i>( Click to Close )</i></p></d

我正在尝试使用JQuery
on()
方法。基本上,我正在尝试写一个类似于这里的警告框。如果你曾经尝试对自己的评论或帖子进行投票,你就会知道我在说什么

我有一个JS函数,如下所示,它只返回我的框和消息

function alert_box(msg){
    return "<div class='alert-box'><p>" + msg + "<br /><i>( Click to Close )</i></p></div>";
}
上述操作按预期工作,但问题在于此功能未触发。
.alert框
与上面的代码一起添加,但不会与下面的代码一起删除

$('.alert-box').on({
    click: function() {
        $('.alert-box').remove();
    }
});
我假设这与在DOM之后添加的
.alert box
类有关。有人对此有任何提示吗?

您所使用的
.on()
格式不会处理动态添加的内容。如果要将其更改为处理动态内容,则可以使用此选项,向其传递一个公共父对象,然后传递一个供选择器筛选的参数:

这种形式的
.on()
的原型是:
.on(事件映射[,选择器][,数据])
。您的代码的工作方式如下:

$(document.body).on({
    click: function() {
        $('.alert-box').remove();
    }
}, '.alert-box');
在这个新表单中,您将事件处理程序附加到父对象,然后在与“.alert box”选择器匹配的任何子对象中查找单击。最好选择一个父对象,该对象尽可能靠近您单击的位置,但不会改变。我在这里使用document.body只是因为我知道它存在,而您还没有向我展示您的其他HTML以了解还可以使用哪些内容。

您使用的
.on()
格式无法处理动态添加的内容。如果要将其更改为处理动态内容,则可以使用此选项,向其传递一个公共父对象,然后传递一个供选择器筛选的参数:

这种形式的
.on()
的原型是:
.on(事件映射[,选择器][,数据])
。您的代码的工作方式如下:

$(document.body).on({
    click: function() {
        $('.alert-box').remove();
    }
}, '.alert-box');

在这个新表单中,您将事件处理程序附加到父对象,然后在与“.alert box”选择器匹配的任何子对象中查找单击。最好选择一个父对象,该对象尽可能靠近您单击的位置,但不会改变。我在这里使用document.body只是因为我知道它的存在,而您还没有向我展示您的其他HTML,让我知道还有什么可以使用。

感谢这位朋友
document.body
很好,我必须使用它,因为
.alert框可以添加到任何内容中。如果我使用
document.body
,是否存在速度问题?唯一的问题是,您不想向同一顶级对象(如document.body)添加大量的事件处理程序,否则事件处理可能会陷入困境,必须根据大量选择器检查每次单击。谢谢您的朋友
document.body
很好,我必须使用它,因为
.alert框可以添加到任何内容中。如果我使用
document.body
,是否存在速度问题?唯一的问题是,您不想向同一顶级对象(如document.body)添加大量事件处理程序,否则事件处理可能会陷入困境,必须根据大量选择器检查每次单击。