【发布时间】:2021-07-27 15:19:10
【问题描述】:
How to add onload event to a div element 指出onload 属性仅适用于<body> 和外部源(如<script>)。
所以对于那个问题中的例子:
<div onload="oQuickReply.swap();" ></div>
永远不会调用 onload 内容。
当 div 添加到页面时,如何通过 div 元素 HTML 本身触发一些 javascript 运行?
如我们所见
$('<div onload="myFunction()"></div>').appendTo('body');
行不通。 myFunction 不会被调用,因为 onload 甚至不会为 div 触发。
我正在使用 C# Razor/DevExtreme 在后端创建 HTML,它不会立即加载整个网页,而是 I want to run some code after some part of the webpage has loaded。这就是为什么我不能只是
$('<div></div>').appendTo('body');
myFunction();
【问题讨论】:
-
appendTo是即时的。你有什么理由不能只做$('<div></div>').appendTo('body'); myFunction()? -
@edemaine 是的,我不是做注射的人
-
您不能仅使用插入元素内的标记来触发事件。在插入之前,您需要将触发器放在适当的位置。试试 document.addEventListener('DOMNodeInserted', myFunction): stackoverflow.com/questions/9778962/… (当然,你需要过滤感兴趣的节点——在这里你可以在新的 DOM 节点中插入一些标记然后您可以将其用作 myFunction 中的过滤条件)。
-
@orithena 看起来是最好的解决方法,谢谢
标签: javascript html