jQuery图像加载回调

时间:2012-05-28 20:43:39

标签: jquery callback load image

在加载然后用户交互后动态地将图像添加到页面,并且在该图像完全加载后无法触发功能。我认为使用jQuery的.load()方法会很好..但根据我的控制台和一堆记录.log业务,它从未执行过。见下文..谢谢!

$('body')
    .append('<img id="ad" src="img/ad.jpg" alt="Advertising Network" />')
    .load(function(){
        console.log('ad load complete');
        $('#submit').click();
    });

更新:

为了澄清,这是在documentwindow加载之后。

2 个答案:

答案 0 :(得分:15)

在您的代码.load()中由于链接而与body相关。

将代码更改为:

var img = $('<img id="ad" src="img/ad.jpg" alt="Advertising Network" />');
img.load(function(){
    console.log('ad load complete');
    $('#submit').click();
});

$('body').append(img);

它应该有效(http://jsfiddle.net/zerkms/f7epb/

答案 1 :(得分:0)

append函数返回包含元素,而不是附加的元素,因此您将函数绑定到body的加载而不是img。

我建议使用appendTo,如下:

$('<img id="ad" src="img/ad.jpg" alt="Advertising Network" />')
.load(function(){
    console.log('ad load complete');
    $('#submit').click();
})
.appendTo($('body'));