Question

modifier: ok, la ligne:

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

Est évidemment et tente de garder le menu ouvert au bon endroit. Je ne pense pas que cela ait jamais fonctionné (je déteste travailler sur d’autres codes de personnes).

Ensuite, mon problème actuel est de savoir comment accéder au <ul class="myul"> directement au-dessus du <li id="001" > en utilisant cet élément id = 001 ??

Bonjour

J'essaie de réparer un morceau de code laissé par un programmeur maintenant perdu. Cela fonctionne mais il manque une fonctionnalité. Je ne reste pas ouvert au bon endroit lorsqu'un élément de menu est sélectionné.

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>

Le résultat du clic de menu est d’injectContent dans un div noir au milieu de la page. Est-ce que $(document).ready(function(){ se produit chaque fois que cela se produit? Sinon, je ne vois pas pourquoi toutes les positions de menu sont mises à jour.

Je suppose que j'ai besoin de plus de code pour identifier la place dans le menu que nous sommes et les laisser ouverts. Il y a des fourmis sur mon bureau.

Était-ce utile?

La solution 2

Il suffisait d’ajouter un jQuery pour rouvrir la section correspondante du menu une fois que tout avait été masqué. Donc, juste après la ligne $('.myul').hide(), je rouvre la section de menu en fonction de la requête URL (products.php? Item = 001):

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

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

Autres conseils

me ressemble à la balise de fermeture incorrecte sur

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

est votre principal problème lorsque vous cliquez dessus

$(this).next('ul')

ne parvient pas à trouver un ul parce que c'est un enfant au lieu d'un frère du h4
en le changeant en

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

ça marche mieux, je ne sais pas si c'était tout ce que vous cherchiez

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

ouvrira tous les ul qui ont un descendant avec l'id spécifié

simplement utiliser .parent () ne recevait pas le top ul à afficher

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top