在具有相同类的多个元素上运行一个jQuery函数

时间:2013-08-01 07:31:34

标签: javascript jquery class element

我在两个或多个元素上运行一个jquery函数时遇到问题。它在HTML代码中的第一个元素上正常运行,但在其他元素上无法正常运行。

我有这个jQuery:

$(window).load(function(){
$('.background_square_1 li.bg_square').hide();

function rotate() {
$(".background_square_1 li.bg_square").first().appendTo('.background_square_1').fadeOut(500);
$(".background_square_1 li.bg_square").first().fadeIn(500);

setTimeout(rotate, 10000);
}
rotate();
});

HTML就像这样:

<ul class="background_square_1 gallery_background">
<li class="bg_square bg_1"></li>
<li class="bg_square bg_2"></li>
<li class="bg_square bg_3"></li>
<li class="bg_square bg_4"></li>
</ul>

<ul class="background_square_1 gallery_background">
<li class="bg_square bg_1"></li>
<li class="bg_square bg_2"></li>
<li class="bg_square bg_3"></li>
<li class="bg_square bg_4"></li>
</ul>

基本上,我想要实现的是使用background_square_1类在两个(但可以更多!)ul元素上运行该函数。

说实话,我不使用javascript或jQuery,所以请记住这一点。

这是小提琴显示我的问题:http://fiddle.jshell.net/bWHPg/

4 个答案:

答案 0 :(得分:1)

直接定位该课程。例如,

$(".gallery_background").function()

或者,如果无法像这样调用该函数,并且您希望用其他东西处理每个元素,那么

$(".gallery_background").each(function(index, item){
    var elm = $(this);
    ... Do stuff ...
})

我可能有错误的索引和项目,但你明白了这一点:)

答案 1 :(得分:0)

将您的代码包含在document.ready而不是window.load

$(function() {
   //jQuery code here
});

答案 2 :(得分:0)

只需在代码中删除.first(),您的代码就可以正常运行

在这里工作小提琴:http://fiddle.jshell.net/bWHPg/2/

答案 3 :(得分:0)

http://fiddle.jshell.net/bWHPg/5/

setInterval(function() { 
  $('.background_square_1').find('li:first')
        .fadeOut(500)
        .next()
        .fadeIn(500)
         .next()
        .fadeIn(500)
        .end()
        .appendTo(".background_square_1");
},  500);