每当将元素添加到DOM时,都会向元素添加一个类

时间:2012-05-25 07:24:15

标签: jquery css timeout

我在document.ready()中有以下代码:

$(document).ready(function(){

   $('img').addClass('myClass');

});

现在这个代码可以正常工作,如果我一次加载所有图像,那么这个函数 myClass 添加给他们(所有img) 。 但是这里发生的事情是,只要在DOM(通过ajax或javascript)中添加了带有 img 标签的新元素(例如<img...../>),就不会添加类到它...是不是JQuery的限制或它通过一些插件或api提供,或者我们必须手动完成。

我希望只要在DOM中添加新的 img ,其类就会设置为 myClass

PS 现在,我使用这样的setTimeout()在2秒后调用一个函数,将类添加到我的图像中:

setTimeout(function(){
  $('img').addClass('actAsButton');
},2000);

但这是正确的做法,事实上,如果我们在2秒后添加任何新的DOM,那么此代码也会失败,因为我可以使用 setInterval 来代替但是内存使用条款。请说清楚..

3 个答案:

答案 0 :(得分:1)

$('img').load(function() {
  $(this).addClass('actAsButton');
})

答案 1 :(得分:0)

在您的情况下addClass无效,因为$(document).ready()被触发时img元素不存在。 S0,您应该使用以下代码。

$('img').live('load', function () {
    $('img').addClass('actAsButton');
});

答案 2 :(得分:0)

$(document).on('img', 'load', function() {
    $(this).addClass('actAsButton');
});