Javascript - 取消onload事件

时间:2010-09-15 11:38:23

标签: javascript jquery events onload

    var town_imgs = $('.town_img img');
    var container;
    var imggg
    town_imgs.hover(function(){

        container = $('<div class="town_img_thmb">'
                +'<span class="thmb_container ajax2"></span>'
            +'</div>').appendTo($(this).parents('.town_wrapper').find('.thmb_wrapper'));

        var imggg = new Image(140,100);             
        imggg.onload = function(){
            container.find('.thmb_container').append(this);
        }
        imggg.src = $(this).attr('src').replace(/\/t0\//,'/t1/');               

    },function(){

        container.remove();
        $(imggg).unbind('onload');

    });

当我快速徘徊缩略图时不工作。它连续显示2-3张图像,大约250-500ms~

据我了解,因为我使用外部变量存储当前缩略图。

是吗?

是否有正确取消onload事件的解决方案?

谢谢;)

2 个答案:

答案 0 :(得分:5)

有两个问题,您要从中删除var,因此您的参考是正确的:

var imggg = new Image(140,100);

然后通过清除您设置的onload功能取消绑定:

imggg.onload = null;

You can see a working demo here

答案 1 :(得分:1)

如果您想使用 onload

取消/销毁 jQuery 事件

您可以使用 unbind 函数。

$('#myimage').unbind('click');

您可以从这里获得更多帮助:
Best way to remove an event handler in jQuery?