有没有办法让内联事件处理程序在元素创建后立即执行?

Posted

技术标签:

【中文标题】有没有办法让内联事件处理程序在元素创建后立即执行?【英文标题】:Is there a way to have an inline event handler which will be executed as soon as the element has been created? 【发布时间】:2015-06-10 14:17:48 【问题描述】:

我试过onload,但是不行:

var divElement = document.createElement('div');
divElement.innerhtml = '<div onload="alert(this)"></div>';

我可以使用什么“on”处理程序来使用内联 javascript 来实现这一点?

【问题讨论】:

处理程序的目的是什么? 你可以看看mutationobserver 一旦创建了元素,我想执行一个函数,在该函数中我将使用“this”关键字来作用于那个确切的 div。 【参考方案1】:

在 JQuery 中有一种方法可以做到这一点。我已经提到了以下代码 sn-p。单击“运行代码片段”以获取代码演示。

$( "#book" ).load(function() 
   
  alert('element loaded')
  $(this).addClass("imgHeight")
);
.imgHeight height:150px; 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<img src="http://quadrobay.com/quadrobay/images/fsolution.png"  id="book">

【讨论】:

以上是关于有没有办法让内联事件处理程序在元素创建后立即执行?的主要内容,如果未能解决你的问题,请参考以下文章

无法在初始化时绑定事件处理程序

拒绝执行内联事件处理程序,因为它违反了 CSP。 (沙盒)

有没有办法打破Visual Studio中执行的下一行代码?

jQuery.on() 是不是适用于在创建事件处理程序后添加的元素?

为啥单击事件处理程序会在页面加载后立即触发?

有没有办法在打开应用程序的 VS 中将批处理文件作为构建后事件运行?