jquery - 阻止 append 元素的 onclick 事件?

标签 jquery append preventdefault

我有一个页面,其中一些 onclick 代码被添加到 append 元素中,我想防止触发 onclick 代码。

这是我尝试过的:

$(function() {
  $('.container').append('<div class="appended" onclick="alert(\'DONT DISPLAY\')">CLICK ME</div>');
  
  // Prevent onclick
  $(document).on('click', '.appended', function (e) {
    e.preventDefault();
    return false;
  });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="container"></div>

不幸的是,这并没有阻止所需的onclick行为

编辑应该提到这一点,但我无权访问将 onclick 事件添加到 HTML 的代码,但我愿意删除该事件属性(如果事后可以对 append 元素执行此操作)。

最佳答案

一种选择是使用 removeAttr() 删除 onclick 属性

$('.container').append('<div class="appended" onclick="alert(\'DONT DISPLAY\')">CLICK ME</div>');

$('.appended').removeAttr('onclick');
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="container"></div>

文档:removeAttr()

关于jquery - 阻止 append 元素的 onclick 事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51027420/

相关文章:

javascript - 在实际检查任何内容之前运行决定是否检查复选框/ radio 的代码(javascript)

javascript - 如何防止文本区域中的换行符并阻止 Jquery 将换行符计为值

javascript - Chrome 上数字输入类型和 jquery .on ('change' ) 函数的意外行为

Python 在 if/else 循环中打印lines.append()

javascript - 如何动态地将一个元素放置在另一个元素之上?

javascript - 使用 jQuery.click() 覆盖 MooTools 事件

jquery - 如何在 jQueryMobile 1.3.1 中通过 AJAX 使用正确的字符编码加载 ISO-8859-1 内容?

javascript - jQuery 选择更改时的交换选项

javascript - JQuery 不会在 Safari 以外的任何浏览器中加载

c - 在 C 中将节点 append 到链接列表(我快到了)