我在两个或多个元素上运行一个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/
答案 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);