Вопрос

Редактировать: хорошо, линия:

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

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

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

Привет

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

Jquery - 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

Просто пришлось добавить немного 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();
                }

Другие советы

мне кажется, что плохой закрывающий тег на

<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() не отображался верхний ul для отображения

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top