IV stworzył podstawowe pionowe menu przesuwne, które można zobaczyć tutaj na lewym pionowym szarym barze:

http://www.switchcreative.co.uk/tuckagefinewin/

Po kliknięciu krajem elementy podmenu zjeżdżają w dół i najwyższy poziom + znak zmiany w A - ale jak się zmienić do +, gdy menu zostanie ponownie zamknięte. Chyba chcę dodać nawet do ruchu w górę Slidetoggles? Ale nie jesteś pewien, jak. Próbowałem użyć oświadczenia, aby go zmienić, ale nie mogłem go uruchomić tutaj, to moja najbliższa wersja do pracy drogi id:

 function initMenu() {
 $('#menu ul:not(.active)').hide();
 $('#menu li a.top_a').click(
 function(e) {
    e.preventDefault();
    $(this).next().slideToggle('normal');
    $(this).siblings('.plus').replaceWith(' - ');   
   }
 );
} 
2
user794846 2 listopad 2011, 14:47

3 odpowiedzi

Najlepsza odpowiedź

Wyjmujesz span.plus Spróbuj ustawić taką tekstę:

if($(this).siblings('.plus').text() == '+')
    $(this).siblings('.plus').text('-');
else
    $(this).siblings('.plus').text('+');
1
Leniel Maccaferri 7 czerwiec 2012, 08:19

Możesz sprawdzić wysokość CSS każdego podkominki. Jeśli jest większy niż 0, element .plus powinien ponownie zastąpić "+". Slidetoggle () nie ma nic innego niż zmiana wysokości EN elementu. Możesz przeczytać o tym tutaj

0
sascha 2 listopad 2011, 10:52

Zmień tę linię:

$(this).siblings('.plus').replaceWith(' - ');

Do:

if($(this).siblings('.plus').length > 0){
    $(this).siblings('.plus').removeClass('.plus').addClass('.minus').text(' - ');
}
else {
    $(this).siblings('.minus').removeClass('.minus').addClass('.plus').text(' + ');
}

Lub nawet dwa piętrze:

<span class="plus"> + </span><span class="minus"> - </span>

.plus jest widoczny, a .minus display: none;. Następnie po przełączeniu następnego elementu:

$(this).siblings('.plus, .minus').toggle();
0
Thomas Clayson 2 listopad 2011, 10:57