加载图像jquery后添加类

时间:2013-01-05 23:57:55

标签: jquery addclass

我有以下代码在加载图片后添加一个类:

$('.single aside img').attr('src', 'assets/img/ajax-loader.gif');

$('.single aside img').attr('src', url).load(function () {  
    $('.single aside img').addClass('loaded');
});

但它不起作用,它在加载之前添加了类。有什么想法吗?

2 个答案:

答案 0 :(得分:1)

我看到你的代码错误的主要原因是在你的回调函数中,你使用的是你最初使用的相同的选择器。

您要做的是引用已加载的实际元素。为此,您可以使用$(this)关键字。

$('.single aside img').attr('src', url).load(function () {  
  $(this).addClass('loaded');
});

// another interpretation of the code...
// var loaded = 'loadedClass';
// $('.single aside img').attr('src', url).load(function () {  
//   $(this).addClass(loaded);
// });

您的代码中也缺少引号,但我怀疑这只是一个复制粘贴错误,所以我忽略了它。

答案 1 :(得分:0)

load方法用于从服务器获取数据(Ajax调用),如下所示:http://api.jquery.com/load/。您必须将load事件绑定到您的图片。

var loaded = 'loadedClass';
$('.single aside img').attr('src', url).bind('load', function () {
    $(this).addClass(loaded);
});