将自定义事件的 html 属性设置为 javascript

Set html attribute as javascript for custom event

提问人:Dean Bradford 提问时间:8/5/2023 最后编辑:Dean Bradford 更新时间:8/5/2023 访问量:39

问:

这工作正常:

<div id='clicker' onclick='alert("clicked")'>clicker</div>
<script> $('#clicker').trigger('click'); </script>

我怎样才能使这项工作(不使用eval )?

<div id='clacker' onclack='alert("clacked")'>clacker</div>
<script> $('#clacker').trigger('clack'); </script>

尝试模仿内联 onclick 属性的行为,但使用我自己的自定义属性/事件,将简单的解决方案应用于简单的问题。

JavaScript HTML 属性 处理 自定义事件

评论

0赞 Jordan 8/5/2023
我看到正在发生的事情有两个问题。第二个示例中的内联脚本不知道 clack 是什么,click 工作的唯一原因是因为 .trigger 对该词有特殊情况。尝试查看此选项而不是 eval:stackoverflow.com/questions/359788/...“onclack”函数的用例是什么?如果需要在单击时调用多个函数,则可以将多个函数链接在 中,否则可以创建自定义属性,例如onclickfoofunction="bar"

答:

0赞 Barmar 8/5/2023 #1

您无法创建这样的自定义属性。只有内置事件具有相应的属性。on<event>

使用 jQuery 或 JavaScript 创建事件处理程序。.on().addEventListener()

$("#clacker").on("clack", function() {
  alert('clacked');
});

$('#clacker').trigger('clack');
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div id='clacker'>clacker</div>