2009-03-05 69 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