Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/385.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/5/bash/17.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 load()回调函数多次激发_Javascript_Ajax_Jquery - Fatal编程技术网

Javascript load()回调函数多次激发

Javascript load()回调函数多次激发,javascript,ajax,jquery,Javascript,Ajax,Jquery,第一次正确执行代码时,它会生成: 装载完成 但它第二次产生: 加载完成 装载完成 它产生的第三次时间: 加载完成 加载完成 装载完成 等等。。。因此,加载函数完成回调函数的第20次被触发20次 $('#image-tag').load(function () { console.log("load complete"); }); }).attr('src', 'image.jpg').appendTo('#main'); 知道是什么导致回调函数像这样重复/增加了吗?这是

第一次正确执行代码时,它会生成:
装载完成

但它第二次产生:
加载完成
装载完成

它产生的第三次时间:
加载完成
加载完成
装载完成

等等。。。因此,加载函数完成回调函数的第20次被触发20次

$('#image-tag').load(function () {
        console.log("load complete");
    });
}).attr('src', 'image.jpg').appendTo('#main');

知道是什么导致回调函数像这样重复/增加了吗?

这是因为每次运行该代码时都要添加另一个事件处理程序

如果要将图像标记附加到元素中,则不应使用页面中已有的图像。改为创建新的图像标记:

$('<img/>').load(function () {
  console.log("load complete");
}).attr('src', 'image.jpg').appendTo('#main');

$(“这就像是在单击处理程序内调用此函数或其他函数,每次都会绑定一个新的处理程序。可以绑定一次,也可以像这样使用:

$('#image-tag').one('load', function () {
    console.log("load complete");
});

非常感谢。我一直忽略这样一个事实:将某些内容绑定到循环中的元素会导致第二次执行时出现问题。
$(#img).unbind('load').load(function(){…});