我有以下代码在加载图片后添加一个类:
$('.single aside img').attr('src', 'assets/img/ajax-loader.gif');
$('.single aside img').attr('src', url).load(function () {
$('.single aside img').addClass('loaded');
});
但它不起作用,它在加载之前添加了类。有什么想法吗?
答案 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);
});