jquery图像加载奇怪的行为

时间:2011-01-02 15:12:18

标签: jquery html image

我有一个页面,其中包含一个带有html的img持有者: -

<img src="someimage.jpeg" alt="image" class="show_image"/>

现在我使用代码使用jquery更新图像...

$('.show_image').attr('src', 'anotherimage.jpeg');

现在当图像加载时我想运行一些代码......

作为图像缩放并让用户知道图像已加载

我运行此代码以了解图像已加载...

 var inc = 0;
    $('.show_image').load(function() {
        inc++;
        console.log('image loaded '+inc);
    });

现在反复更新img src,上面的加载函数显示出一个奇怪的

行为,被称为img src更新的次数......

查看此页面上的firebig日志...(使用上面的上一个按钮)

pradyut.dyndns.org/original_image.jsp#imgid=202

我想我必须像这样运行代码

if(inc==1) {
  //run code
}

任何帮助

由于

2 个答案:

答案 0 :(得分:3)

使用jQuery's .one() method

$('.show_image').one('load', function() {
    inc++;
    console.log('image loaded '+inc);
});

这会在第一次运行后删除处理程序。

答案 1 :(得分:0)

仅在图像上绑定一次加载事件,而不是每次加载新图像时都绑定。

或者,在绑定新事件之前,使用unbind方法取消绑定任何先前的加载事件。