javascript - Javascript 刷新/重新初始化 DOM
问题描述
在我的网站上,我有这样的东西:
$( document ).ready(function() {
$('classname').on("click", function(e){
// do stuff...
});
});
然后在不重新加载页面的情况下操作 dom。也许添加了一些带有 class="classname" 的新元素。对于这些元素,不会触发 click 事件。有没有办法在不重新加载页面的情况下为 javascript 重新初始化 dom?在 jquery 中,类似$.reinit()
?
以防万一,dom 操作是通过<%= j render partial: '...' %>
update.js.erb 文件中包含的 rails 完成的。
基本上我正在寻找一种方法来告诉 dom 有一个新的/更新的元素。
解决方案
我会将 eventListener 添加到文档中,然后检查单击的元素是否具有所需的类。在普通的 JS 中,它看起来像:
document.addEventListener("click", event => {
if(event.target.classList.contains("classname")) {
// do stuff...
}
});
这样一来,添加到 DOM 的新元素就不会出现问题。
推荐阅读
- canvas - 如何在动画中使用 imageData
- amazon-ec2 - AWS EC2 端点可以用作 Google Home 的端点吗?
- android - EditText ,输入的文本不完整可见
- sql - 为特定数据库运行 .sql 脚本
- javascript - 使用 javascript XMLHttpRequest 将数据(图像和其他一些参数)发送到 php
- gcloud - 部署到 gcloud 会产生可怕的构建错误
- bash - 检查bash中文件名的最后一个字符
- python - 对导入模块感到困惑。模块不是从同一文件夹中导入的||?
- python - Tensorflow cuDNN 模型执行的延迟问题
- r - JSON 解析错误:字符串被截断