2011-08-06 60 views
2

我希望能夠使用jQuery 1.4.4循環錨點選擇。在JavaScript定時器中添加然後刪除一個類到achor元素

下工作時,靶向LI元素:

HTML:

​​

的JavaScript(jQuery的反對1.4.4):

rotateBanner = function() { 
    var active = $('ul.rotating-banner li.active'); 
    var next = active.next(); 
    if (next.length === 0) { 
     next = $('ul.rotating-banner li:first'); 
    } 

    active.removeClass('active'); 
    next.addClass('active'); 
} 
setInterval(rotateBanner, 1000); 

這可以在這裏看到:http://jsfiddle.net/Carnotaurus2/Yq9AA/

但是,正如我所說的,我希望針對嵌套錨點ta gs覆蓋UL元素中的所有LI元素(每個LI元素中只能有一個錨標籤)。因此,例如,在第一週期的時間間隔,我們選擇了第一錨定標記:

<ul class="rotating-banner"> 
    <li><a class="active">1</a></li> 
    <li><a>2</a></li> 
    <li><a>3</a></li> 
    <li><a>4</a></li> 
</ul> 

然後,在下一個時間間隔,我們有第二選擇的:

<ul class="rotating-banner"> 
    <li><a>1</a></li> 
    <li><a class="active">2</a></li> 
    <li><a>3</a></li> 
    <li><a>4</a></li> 
</ul> 

最終選擇之後,第一個錨標籤被選中無限期地

回答

4

要到錨標記,我改變了選擇這樣:

var active = $('ul.rotating-banner li a.active'); 
var next = active.parent().next().find('a'); 

這裏工作小提琴(即無限循環):http://jsfiddle.net/Yq9AA/1/

我錯過了循環往復部分,更新了我小提琴(這個週期只一次):http://jsfiddle.net/Yq9AA/2/

+0

+1 - 它提供了一個單循環選項 – CarneyCode

+0

是不是你要求的?也不知道你爲什麼不把這個標記爲答案。 – Mrchief

+0

單週期後停止;而不是永遠騎自行車。 – CarneyCode

2

嘗試此

rotateBanner = function() { 
    var active = $('ul.rotating-banner a.active'); 
    var next = active.parent().next(); 
    if (next.length === 0) { 
     next = $('ul.rotating-banner a:first'); 
    } 
    else{ 
     next = next.find("a"); 
    } 

    active.removeClass('active'); 
    next.addClass('active'); 
} 
setInterval(rotateBanner, 1000); 
+0

+1 - 它解決了確切的問題 - 謝謝 – CarneyCode

相關問題