2009-03-05 74 views
0

編輯: 行,行:jQuery的heirarchical菜單設計

$(<?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> 

菜單點擊的結果是injectContent到頁面中間的黑色格。每當這種情況發生時,$(document).ready(function(){會發生嗎?否則我不明白爲什麼所有的菜單位置都會更新。

我想我需要一些更多的代碼來確定菜單中的位置,並讓它們保持打開狀態。我桌上有螞蟻。

回答

0

只是不得不添加一些jquery重新打開菜單的相關部分後,它已被隱藏。太行$('.myul').hide()之後我重新根據網址查詢(products.php項目= 001?)菜單部分:

var item = <?php echo("'".$_GET['item']."'") ?>; 

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

看起來我就像

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

壞的結束標記是你的主要問題,當它被點擊

$(this).next('ul') 

未能找到UL,因爲它是一個孩子,而不是的H4
兄弟將其更改爲

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

品牌它工作得更好,不知道這是你正在尋找

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

將打開每一個有指定id後裔
只是用.parent(UL)沒有得到頂UL展示

+0

這當然需要修復,但它不是不幸的是這個問題。 我遇到的問題是取消隱藏我剛剛選擇的菜單項: $(<?php echo(''li#「。$ _ GET ['item']。」'「)?>).parent()。顯示(); 應解釋爲$('li#001')。parent()。show();但它沒有顯示任何東西 – edzillion 2009-03-06 10:28:21