2012-03-23 42 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/