Vorrei iniziare dicendo che sono nuovo di jQuery e sospetto che stia facendo qualcosa di stupido, quindi spero che questo sia molto semplice per qualcuno.jQuery. Quando(). Done() non funziona
Sto tentando di aggiungere un sottomenu mobile scorrevole al mio sito web. Voglio un effetto accordian per cui se faccio clic su un collegamento genitore, si apre il sottomenu figlio e tutti gli altri sottomenu si chiudono. Il problema è il tempismo: il sottomenu figlio si apre e viene di nuovo chiuso dal ripristino di tutti i sottomenu. Presumo che la risposta sia usare i differiti, ma tutto quello che ho provato è fallito. Questo è il codice (attualmente non funzionante):
function ResetMenu(){
jQuery(".mobile-menu").find(".sub-menu").slideUp(100);
jQuery(".mobile-menu").find(".menu-item-has-child").removeClass("open");
};
function OpenSubmenu(){
jQuery(this).next("ul").slideDown(100);
jQuery(this).parent().addClass("open");
};
jQuery("li.menu-item-has-children > a").click(function(){
if(jQuery(this).parent().hasClass("open")){
jQuery(".mobile-menu").find(".sub-menu").slideUp(100);
jQuery(this).parent().removeClass("open");
} else {
jQuery.when(ResetMenu()).done(OpenSubmenu());
}
return false;
});
Qualsiasi aiuto sarebbe molto apprezzato. Grazie!
Ronel
'ResetMenu' necessità di restituire una promessa per far funzionare tutto questo .. –