2012-03-23 36 views
1

理想情况下,即时通讯尝试点击一个div,找到父类中的下一个类。淡入该类,删除类。.click,在父级找到下一个类元素,淡入,删除类。重复

再次单击div,然后找到下一个'page'类,淡入,删除类。

任何帮助将是伟大的。目前,.find,.next和.nextAll都会导致所有的ul页面同时淡入。

HTML

<div id="container" class=""> 
    <ul id="page_1"> 
    <ul id="page_2" class="page"> 
    <ul id="page_3" class="page"> 
    <ul id="page_4" class="page"> 
    </div> 

JS

$("#click").click(function() { 
    $("#container").children().closest('.page').fadeIn(); 
}); 

回答

1

你可以尝试:

$("#click").click(function() { 
    var active; 
    if ($('#container > .active').length) { 
     active = $('#container > .active'); 
     active.removeClass('active'); 
     active.next().addClass('active'); 
     active = active.next(); 
    } else { 
     active = $('#container > .page:first'); 
     active.addClass('active'); 
    } 
    active.fadeIn(); 
}); 

(您的标记我不是纠正这种假设:)

<div id="container" class=""> 
    <ul id="page_1"></ul> 
    <ul id="page_2" class="page"></ul> 
    <ul id="page_3" class="page"></ul> 
    <ul id="page_4" class="page"></ul> 
</div> 

这里拨弄http://jsfiddle.net/kmtCV/2/

+0

适合我;我将原始问题解释为想要移除“页面”,但是:http://jsfiddle.net/kmtCV/1/另外:只注意到第二次点击不起作用;有些事情不合适,我没有麻烦 - 拍摄。 – 2012-03-23 20:35:41

+0

@GregPettit对不起,在我的帖子 – 2012-03-23 20:41:47

+0

是的,这是有效的。我仍然认为该帖子要求删除“页面”,并且在最后一次点击发生后。如果是这样(可能不是!),那只是修改时间的问题:http://jsfiddle.net/kmtCV/3/ – 2012-03-23 20:46:55

0

试试这个。

$('#click').click(function() { 
    $('#container > .page:first').fadeIn(); 
}); 
+0

我认为他想一次淡化它们,但也许我错了! – 2012-03-23 20:31:14

+0

是的,它看起来像一次一个。 – ShankarSangoli 2012-03-23 20:35:38

0

作为.page元件被衰落,则可以添加一visible类到它,衰落下一个元素时要排除使用:not作为选择器。见http://jsfiddle.net/rTfcy/