Chciałbym zacząć od stwierdzenia, że jestem nowy w jQuery i podejrzewam, że robię coś głupiego, więc mam nadzieję, że będzie to bardzo proste dla kogoś.jQuery. When(). Done() nie działa
Próbuję dodać przesuwne podmenu mobilne do mojej witryny. Chcę uzyskać efekt akordowy, dzięki któremu po kliknięciu jednego łącza nadrzędnego otworzy się podrzędne menu podrzędne i zamkną się wszystkie inne podmenu. Problem polega na synchronizacji czasu - podmenu podrzędne otwiera się, a następnie zamyka ponownie przez zresetowanie wszystkich podmenu. Zakładam, że odpowiedzią jest używanie odroczeń, ale wszystko, co wypróbowałem, zawiodło. To jest kod (obecnie nie działa):
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;
});
Każda pomoc zostanie bardzo doceniona. Dziękuję Ci!
Ronel
'ResetMenu' potrzeby powrotu obietnicę dla tej pracy .. –