Domanda

modifica ok, la linea:

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

È ovviamente e tenta di mantenere il menu aperto nel posto giusto. Non credo che abbia mai funzionato (ho odiato lavorare su altri codici ppls).

Quindi il mio problema attuale è come accedere a <ul class="myul"> direttamente sopra <li id="001" > usando quell'elemento id = 001 ??

Ciao

Sto cercando di correggere un pezzo di codice lasciato a me da un programmatore ormai perso. Funziona ma manca una funzione; Non rimango aperto nella posizione corretta quando viene selezionata una voce di menu.

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>

Il risultato del clic del menu è quello di iniettare il contenuto in un div nero al centro della pagina. $(document).ready(function(){ si verifica ogni volta che si verifica? Altrimenti non riesco a capire perché tutte le posizioni del menu sono state aggiornate.

Credo di aver bisogno di altro codice per identificare il posto nel menu in cui ci troviamo e lasciarlo aperto. Ci sono formiche sulla mia scrivania.

È stato utile?

Soluzione 2

Ho dovuto solo aggiungere un po 'di jquery per riaprire la relativa sezione del menu dopo che è stata tutta nascosta. Quindi subito dopo la riga $('.myul').hide() riapro la sezione del menu in base alla query url (products.php? Item = 001):

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

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

Altri suggerimenti

mi sembra il tag di chiusura errato su

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

è il tuo problema principale, quando viene cliccato su

$(this).next('ul')

non riesce a trovare un ul perché è un figlio anziché un fratello di h4
cambiandolo in

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

lo fa funzionare meglio, non sono sicuro che fosse tutto ciò che stavi cercando

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

aprirà ogni ul che ha un discendente con l'id specificato
solo usando .parent () non è stato possibile ottenere il massimo ul da mostrare

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top