2011-08-06 7 views
2

jQuery 1.4.4を使用してアンカー選択を循環させたいと考えています。 JavaScriptタイマーでアンカー要素にクラスを追加して削除する

次作品

標的にLI要素:

HTML:(jQueryの1.4.4に対する)

​​

JavaScriptを:これはここで見ることができ

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/

しかし、私が言ったように、私はネストされたアンカータ(各LI要素内にアンカータグが1つしかない)。 、最終的な選択後

<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> 

<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> 

は、その後、次の間隔で、我々は第二の選択がありますので、例えば、最初の目盛りの間隔で、我々は選択した最初のアンカータグを持っています最初のアンカータグが選択されます ad infinitum。タグを固定するために取得するには

答えて

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

1サイクル後に停止します。永遠にサイクリングする代わりに。 – 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を試してみてください
+0

+1 - それは正確な問題を解決します - ありがとう – CarneyCode

関連する問題