Javascript 使用jquery append时onload不起作用

Javascript 使用jquery append时onload不起作用,javascript,jquery,append,onload,Javascript,Jquery,Append,Onload,当元素通过ajax加载并附加到DOM时,我需要启动脚本 这里是HTML <div id="one"> <p>one</p> <button>Append</button> </div> 一个 追加 这里是javascript $('button').on('click', function(){ //in real life s is loaded via ajax var s="<p onloa

当元素通过ajax加载并附加到DOM时,我需要启动脚本

这里是HTML

<div id="one">
  <p>one</p>
  <button>Append</button>
</div>

一个

追加
这里是javascript

$('button').on('click', function(){
  //in real life s is loaded via ajax
  var s="<p onload='myalert();'>two</p>";
  $('#one').append(s);
})

function myalert() {
  alert('ok');
}
$('button')。在('click',function()上{
//在现实生活中,s是通过ajax加载的
var s=“

警报永远不会发出。如何在元素完全加载时捕获事件


这里有一个codepen沙盒供您使用:

您不能在那里使用
onload
事件。为什么不在事件处理程序的末尾添加
alert
语句呢

$('button').on('click', function(){
  //in real life s is loaded via ajax
  var s="<p>two</p>";
  $('#one').append(s);
  alert('ok');
})
$('button')。在('click',function()上{
//在现实生活中,s是通过ajax加载的
var s=“two

”; $('一')。追加; 警报(“正常”); })
试试这个

$('button').on('click', function(){
  //in real life s is loaded via ajax
  var s="<p id='twoP' >two</p>";
  $('#one').append(s).ready(function(){
    alert('ok');
  });
})
$('button')。在('click',function()上{
//在现实生活中,s是通过ajax加载的
var s=“

two

”; $('#one').append(s).ready(function(){ 警报(“正常”); }); })
这将加载元素,然后将触发回拨

我试图解决您的问题。 所以我找到了解决你问题的方法。 这是我的密码

$('button')。在('click',function()上{
//在现实生活中,s是通过ajax加载的
var s=“two

”; $('#one').append(s).ready(function(){ 警报(“正常”); }); })

一个

追加
因为任务有点复杂。我需要读取加载了append的图像的宽度。它是0,因为append语句之后还没有加载图像。以下是更新的脚本部分: