disegno del menu gerarchico jquery
-
03-07-2019 - |
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.
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