Domanda

Ho un nab bar e voglio uno degli elementi nella barra di navigazione per aprire un menu a discesa quando si fa clic.Ho questo:

$("#dropdown_menuitem").click(function() {
    $(this).find('ul').slideToggle('slow');
});

Tuttavia, il menu a tendina non compare mai fare clic su il mio html simile a questo:

<li id="dropdown_menuitem"><a href="#">MyAxon<img style="padding-left:5px;" src="img/drop-down.png"/></a>
    <ul class="dropdown reverse_gradient">
         <li class="dropdown"><a href="#">Teachers</a></li>
         <li class="lastElementInDropDown dropdown"><a href="#">Students</a></li>
    </ul>
</li>
.
.

Edit:Ho provato alert($(this).find('ul').html()); e ho ricevuto un avviso con la <li> elementi.

$(this).find('ul').show(200); non ha funzionato neanche

Il contenuto non viene aggiunto in modo dinamico.

Il mio css assomiglia a questo:

 nav.main_nav ul.dropdown{
     opacity: 0; 
     position: absolute; 
     top: 35px; 
     left: 10px;  
     border-bottom-right-radius: 10px; 
     -moz-border-bottom-right-radius: 10px;
     border-bottom-left-radius: 10px; 
     -moz-border-bottom-left-radius: 10px;
     display: none;
     z-index: 100;
  }

Tutte le idee?

È stato utile?

Soluzione 2

Trovato il problema, avevo impostato opacità a zero nel mio foglio di stile, che mi impedisce di vedere il menu a discesa.

Altri suggerimenti

Beh, prima di tutto è necessario assicurarsi che ciò che si fa clic su non è il link stesso.Qui si fa un .fare clic su anche per la li - Ma cosa succede se l'utente clicca effettivamente il link?Bene, allora si verrà reindirizzati a href entro il link.

Dunque, per evitare che devi aggiungere un evento click del link è di per sé:

$("#dropdown_menuitem a").click(function(e) {
    if($(this).parent().find('ul').length > 0) {
         e.preventDefault():;
    }
});

Questo consentirà di verificare se una tendina esiste nell'attuale li - Se non abbiamo vinto non è reindirizzare l'utente a interrompere la nostra esecuzione di JavaScript.Quindi quello che abbiamo non è quello di impedire l'evento corrente.Come redirect.

Provatelo e fatemi sapere se ha funzionato :)

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