Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/466.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cassandra/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何将加载处理程序附加到动态创建的项_Javascript_Jquery_Events - Fatal编程技术网

Javascript 如何将加载处理程序附加到动态创建的项

Javascript 如何将加载处理程序附加到动态创建的项,javascript,jquery,events,Javascript,Jquery,Events,我试图将负载处理程序绑定到动态创建的对象(生产代码中的主干视图)。我尝试使用中概述的方法,它适用于单击处理程序,但不适用于加载处理程序。有人知道如何解决这个问题吗 这是有效的(与单击处理程序一起) $(文档).ready(函数(){ $(“body”)。在(“click”,“img”,function()上{ 控制台日志(“foo”); }); 创建(); }); 函数create(){ $img=$(” 但这并不是(使用load handler) $(文档).ready(函数(){ $(“bo

我试图将负载处理程序绑定到动态创建的对象(生产代码中的主干视图)。我尝试使用中概述的方法,它适用于单击处理程序,但不适用于加载处理程序。有人知道如何解决这个问题吗

这是有效的(与单击处理程序一起)

$(文档).ready(函数(){
$(“body”)。在(“click”,“img”,function()上{
控制台日志(“foo”);
});
创建();
});
函数create(){
$img=$(”
但这并不是(使用load handler)

$(文档).ready(函数(){
$(“body”)。在(“load”,“img”,function()上{
控制台日志(“foo”);
});
创建();
});
函数create(){

$img=$(“不幸的是,在子选择器上使用
on
只适用于冒泡的事件类型。DOM
load
事件不会在树上冒泡,因此它永远不会到达您正在侦听它的
body

您需要手动将处理程序附加到您创建的任何图像

$(document).ready(function() {
  $("body img").on("load" onLoad);

  create();
});

functon onLoad(){
    console.log("foo");
}

function create(){
  $("<img />")
    .on('load', onLoad)
    .attr("src", "http://www.pureweber.com/wp-content/uploads/2011/04/jquery_icon.png")
    .appendTo('body');
}
$(文档).ready(函数(){
$(“车身img”)。打开(“加载”打开);
创建();
});
函数onLoad(){
控制台日志(“foo”);
}
函数create(){

$(“你不能。加载注册到主体,加载事件不会冒泡那么远,事实上它根本不会冒泡。这是有用的信息,谢谢!谢谢你的帮助!有什么方法可以将加载处理程序附加到动态创建的映像上吗?谢谢你的详细回答,我将手动附加一个加载处理程序!
  $(document).ready(function() {
    $("body").on("load", "img", function(){
      console.log("foo");
    });

    create();
  });

  function create(){
    $img = $("<img />").attr("src", "http://www.pureweber.com/wp-content/uploads/2011/04/jquery_icon.png");
    $("body").append($img);
  }
$(document).ready(function() {
  $("body img").on("load" onLoad);

  create();
});

functon onLoad(){
    console.log("foo");
}

function create(){
  $("<img />")
    .on('load', onLoad)
    .attr("src", "http://www.pureweber.com/wp-content/uploads/2011/04/jquery_icon.png")
    .appendTo('body');
}