JQuery Heirarchical дизайн меню - PullRequest
0 голосов
/ 05 марта 2009

редактировать: ок, строка:

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

Очевидно и попытайтесь держать меню открытым в нужном месте. Я не думаю, что это когда-либо работало (я ненавижу работать над другим кодом ppls).

Тогда моя текущая проблема заключается в том, как получить доступ к <ul class="myul"> непосредственно над <li id="001" >, используя этот элемент id = 001 ??

Привет

Я пытаюсь исправить кусок кода, оставленный мне потерянным программистом. Это работает, но отсутствует функция; Я не остаюсь открытым в правильном месте, когда выбран пункт меню.

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 в середине страницы. $(document).ready(function(){ происходит каждый раз, когда это происходит? В противном случае я не могу понять, почему все позиции меню обновляются.

Полагаю, мне нужен еще код, чтобы определить место в нашем меню и оставить их открытыми. На моем столе муравьи.

Ответы [ 2 ]

1 голос
/ 06 марта 2009

выглядит как плохой закрывающий тег на

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

ваша главная проблема, когда на нее нажимают

$(this).next('ul')

не может найти ul, потому что это ребенок, а не брат h4
изменив его на

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

делает его лучше, не уверен, что это все, что вы искали

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

откроет каждый ul, у которого есть потомок с указанным идентификатором
просто использование .parent () не показывало top ul для показа

0 голосов
/ 10 марта 2009

Просто нужно было добавить jquery, чтобы снова открыть соответствующий раздел меню после того, как все это было скрыто. Поэтому сразу после строки $('.myul').hide() я снова открываю раздел меню на основе URL-запроса (products.php? Item = 001):

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

                if (item != '')             
                {
                    item = "li#" + item;            
                    $(item).parent().show();
                    $(item).parent().parent().show();
                }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...