Pergunta

Editar: ok, a linha:

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

É, obviamente, e tentar manter o aberto menu no lugar certo. Eu não acho que isso nunca funcionou (tenho Eu odeio trabalhar em outro código ppls).

Em seguida, o meu problema atual é como acessar a <ul class="myul"> diretamente acima do <li id="001" > usando esse artigo ID = 001 ??

Hi

Eu estou tentando arrumar um pedaço de código que me resta por um programador agora perdido. Ele funciona, mas há uma característica ausente; Eu não ficar aberto no lugar correto quando um item de menu é selecionado.

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>

O resultado do menu do botão é injectContent em um div preto no meio da página. Será $(document).ready(function(){ acontecer toda vez que isso ocorre? Caso contrário, eu não posso ver porque todas as posições do menu são atualizados.

Eu acho que preciso de um pouco mais de código para identificar o local no menu somos e deixá-los abertos. Há formigas na minha mesa.

Foi útil?

Solução 2

Apenas teve que adicionar um pouco de jQuery para reabrir a seção relevante do menu depois de ter sido escondido. Então, logo após a $('.myul').hide() linha que eu reabrir a seção do menu com base na consulta url (? Products.php ponto = 001):

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

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

Outras dicas

Parece-me que a marca de fechamento ruim em

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

é o seu principal problema, quando fica clicou

$(this).next('ul')

não consegue encontrar um ul porque é uma criança, em vez de um irmão do h4
mudá-lo para

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

faz com que funcione melhor, não tenho certeza se isso era tudo o que você procura

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

abrirá cada ul que tem um descendente com o ID
especificado apenas usando .parent () foi não conseguir o topo ul para mostrar

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top