2009-03-05 9 views
0

編集: OK、ライン:jqueryの階層的メニューのデザイン

$(<?php echo("'#".$_GET['item']."'") ?>).parent().show(); 

は明らかですし、正しい場所にオープンメニューを維持しようとします。私はこれがこれまでに働いたとは思わない(私は他のpplsコードに取り組んでいない)。

私の現在の問題は、そのアイテムID = 001を使用して<li id="001" >の真上の<ul class="myul">に直接アクセスする方法です。

こんにちは

私は今、失われたプログラマが私に残されたコードの一部を修正しようとしています。それは機能しますが、欠けている機能があります。私は、メニュー項目が選択されたときに正しい場所に開かれたままではありません。

のjQuery:

$.swapImage(".swapImage");         
      $(<?php echo("'#".$_GET['item']."'") ?>).parent().show(); 
      $('.myul').hide();    
      $('.slide_ul li:not(:first-child)').hide();  
      $('.hideMe').click(function(){ 
       $(this).next('ul').slideToggle('fast').siblings('ul:visible').slideUp('fast'); 
      });        
      $('.myul a').click(function(e){ 
       var url = $(this).attr('href'); 
       var index = url.indexOf('='); 
       var substr = url.slice(index+1);      
       $('#productContainer >div').hide(); 
       $('#productContainer').load("products/"+substr+"/product.html", function(){ 
        $(this).fadeIn('slow'); 
        var i = 0; 
        $('.slide_ul li:not(:first-child)').hide();                    
       });     
      }); 

HTML:

<!-- Right Navigation --> 
         <div id="rightNav"> 
          <div id="navMenu"> 
           <h2 id="navMenuheader">Catalogue</h1> 
           <h3 class="hideMe">Widgets</h3> 
           <ul class="myul"> 
            <h4 class="hideMe">Widget Coins</h2> 
            <ul class="myul"> 
             <li id="001" > 
              <a href="products.php?item=001">The South African Widget</a> 
              </li> 

メニュークリックの結果は、ページの途中で黒のdivにinjectContentすることです。これが発生するたびに$(document).ready(function(){が発生しますか?それ以外の場合、私はすべてのメニュー位置が更新される理由を見ることができません。

私は、メニュー内の場所を特定し、それらを開いたままにしておくために、さらにコードが必要になると思います。私のデスクにはアリがいます。

答えて

0

jqueryをすべて追加して、メニューの関連セクションをすべて非表示にしてから再度開く必要がありました。だから、右のライン$('.myul').hide()た後、私はURLクエリ(?products.php項目= 001)に基づいて、メニューのセクションを再開:

確かに固定必要
var item = <?php echo("'".$_GET['item']."'") ?>; 

       if (item != '')    
       { 
        item = "li#" + item;    
        $(item).parent().show(); 
        $(item).parent().parent().show(); 
       } 
1

ではなく、Aの子であるため、

<h4 class="hideMe">Widget Coins</h2> 

に悪い終了タグは、それが

$(this).next('ul') 

をクリックしますあなたの主な問題は、ULの検索に失敗しているように私には見えますH4
の兄弟

<h4 class="hideMe">Widget Coins</h4> 

なりにそれを変更しますそれはそれはすべてあなたが指定したidを持つ子孫
だけ使用して.parentを(持っているすべてのULを開きます

$(<?php echo("'ul:has(#".$_GET['item'].")'");  ?>).show(); 

を探していました)を示すために、トップULを取得していなかったのだったかどうかわからない、良い仕事します

+0

が、それは残念ながら問題ではありません。 私が問題を抱えているのは、今選択したメニュー項目を隠すことです: $(<?php echo( "'li#"。$ _ GET [' item ']。 "'")?>)。 show(); は$( 'li#001')と解釈されます。parent()。show();しかし何も表示していない – edzillion