Javascript onclick事件没有';不能重新加载元素

Javascript onclick事件没有';不能重新加载元素,javascript,php,jquery,ajax,setinterval,Javascript,Php,Jquery,Ajax,Setinterval,我已经创建了一个用户支持系统,使用户可以联系我的网站的版主,以防他们在帐户和其他方面需要帮助 截至最近,只有当页面刷新时,才会加载发送给用户或由用户发送的新消息,这不是很方便,因为用户可能会在不刷新的情况下注销,因此无法很快获取消息 为了解决这个问题,我考虑实现一个setInterval()每1分钟发送一个AJAX请求,并从数据库中重新加载消息,这样如果存在新的消息,它们就会显示出来 当它实际工作并重新加载消息时,当我单击消息打开并阅读它时,不会触发onclick事件。所有消息都会发生这种情况,

我已经创建了一个用户支持系统,使用户可以联系我的网站的版主,以防他们在帐户和其他方面需要帮助

截至最近,只有当页面刷新时,才会加载发送给用户或由用户发送的新消息,这不是很方便,因为用户可能会在不刷新的情况下注销,因此无法很快获取消息

为了解决这个问题,我考虑实现一个
setInterval()
每1分钟发送一个AJAX请求,并从数据库中重新加载消息,这样如果存在新的消息,它们就会显示出来

当它实际工作并重新加载消息时,当我单击消息打开并阅读它时,不会触发
onclick
事件。所有消息都会发生这种情况,没有例外

我认为问题在于
setInterval()
每分钟都会重新加载所有消息,而不是检查是否存在新消息,并仅在这种情况下重新加载它们,但尽管在我的PHP文件中执行了此检查,问题仍然存在


我的通知PHP代码:
setInterval()
的我的代码:

我只找到了类似的堆栈溢出,但不幸的是,没有一个答案解决了我的问题

您正在使用
on
直接绑定
onclick
事件。你应该使用

您可以用这种方式编写
onclick
事件

$(document).on("click", ".user-notifs",function() {
   //script goes here
});
除了
document
之外,还可以使用更靠近目标元素的父元素

$(class_or_id_of_closer_parent_ele).on("click", ".user-notifs", function() {
    //script goes here
});

您正在使用上的
直接绑定
onclick
事件。你应该使用

您可以用这种方式编写
onclick
事件

$(document).on("click", ".user-notifs",function() {
   //script goes here
});
除了
document
之外,还可以使用更靠近目标元素的父元素

$(class_or_id_of_closer_parent_ele).on("click", ".user-notifs", function() {
    //script goes here
});

您必须将onclick eventhandler重新分配给新添加的元素。您必须将onclick eventhandler重新分配给新添加的元素。这很有效!我必须将处理程序附加到它的父级,它才能工作,这就是我在问题中所提到的嵌套PHP代码的元素。我还阅读了您提供的文档,它帮助我更好地理解为什么它不起作用。你是一个更大的帮助,你认为,你应该得到一个向上投票和一个复选标记!非常感谢@我很乐意帮助你:)它起作用了!我必须将处理程序附加到它的父级,它才能工作,这就是我在问题中所提到的嵌套PHP代码的元素。我还阅读了您提供的文档,它帮助我更好地理解为什么它不起作用。你是一个更大的帮助,你认为,你应该得到一个向上投票和一个复选标记!非常感谢@我很乐意帮助你:)
$(class_or_id_of_closer_parent_ele).on("click", ".user-notifs", function() {
    //script goes here
});