2011-12-21 6 views
0

基本的には、liトリガーがアクティブなときにサイトの背景と内容を変更する "toggler"という関数があります。サイトのその部分は完璧に動作します。その後、左右方向の<a>タグを追加しました。これが私の頭を傷つけています。これらの<a>タグトリガーがトグルラー関数を呼び出し、コンテンツにギャップがないようにすべてのliをループする必要があります。最後の子供から最初の子供には今、コンテンツ間にギャップがあります。next li active triggers function

arrow_trigger: function() { 
    $('#rightScroll').bind('click', function(e){ 

    // Determine current active - 
    if ($('li.toggle.active')) 
    { 

     // If there's an active, next li a is passed to toggler. 
    if ($('ul#menu li.active').length > 0) 
    { 
     // There's an active. yippidedooooo!!!! 
     var next = $('ul#menu li.active').next('li').children('a'); 

     // If no next - default back to first. 
     if (next.length > 0) 
     { 
         SITE.toggler(next); 

     } else { 

      // No 'next' 
      console.log('foo'); 
      SITE.toggler($(active).children('a')); 
     } 


    } else { 

     // Default to first LI 
     var active = $('ul#menu li:first-child'); 

     SITE.toggler($(active).children('a')); 
    } 

    // If active = last li - first li a is passed to toggler 
    } 
    }); 

}, 

私はここで理にかなっていると思っています。どんな助けもありがとうございます。

+1

'$( 'li.toggle.active')'は空の配列 '[]'が 'true'なので、常に' true'を返します。 – rkw

答えて

0

アクティブなliが選択されているかどうかを確認し、lengthプロパティをチェックします。

if ($('li.toggle.active').length > 0) 

あなたはクリックされたボタンを含むliがアクティブかどうかをチェックしますか?

if ($(this).parent("li").hasClass("active")) 
+0

ありがとう@Adam。私はアクティブな状態で働いて、次の李に切り替える。しかし、私のelse文は、最初のliにデフォルト化することは機能しません。なぜあなたは知っていますか? '}他{ \t \t \t \t \t \t \t //最初のLI \t VARアクティブ= $( 'ul.menu李:第一子')へのデフォルト。 \t \t \t \t \t \t \t \t SITE.toggler($(アクティブ).children( 'A')); } ' – slouey6

+0

@ slouey6 - わからない - あなたはフィドルを設定できますか? –

+0

ここにステータスが更新されました。私はデフォルトで問題を把握しました – slouey6

関連する問題