加载图像jquery后添加类

加载图像jquery后添加类,jquery,addclass,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'); }); 但它不工作,它在加载之前添加了类。有什么想法吗?我认为代码的主要错误在于,在回调函数中,使用的选择器与

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

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

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

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

我认为代码的主要错误在于,在回调函数中,使用的选择器与最初使用的选择器相同

您要做的是引用加载的实际元素。为此,您可以使用
$(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);
// });

您的代码中还缺少一个引号,但我怀疑这只是一个复制粘贴错误,因此我将忽略它。

加载方法用于从服务器获取数据(Ajax调用),如您在此处所见:。必须将
load
事件绑定到图像

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

您缺少一个报价。。。这只是一个复制粘贴错误,还是这是您的实际代码?缺少的引号显然只存在于问题中。“它在加载之前添加类”-如果出现语法错误,则不会发生这种情况。谢谢,但由于某种原因,这仍然会在加载之前添加类。@use-加载函数的回调应该只在加载元素后触发。你确定没有其他代码添加隐藏在某处的类吗?我确实有这个代码,它只是在主图像加载之前显示一个loader.gif:……我将把它添加到原始帖子中,见上文。