Tworzę menu, które otwiera się i zamyka za pomocą jQuery. W prostych słowach, to działa tak:
function open_menu() {
$(this).next('ul.sub-menu').css('display', 'block').stop(true, false).animate({
width: '235px',
}, 500);
}
function close_menu() {
// close code here
}
status = 'closed'; // set the default menu status
$('a').click(function() {
switch(status) {
case 'closed':
open_menu();
break;
case 'open':
close_menu();
break;
}
}
Jeśli wezmę zawartość open_menu()
i umieścić go w miejscu open_menu()
w przypadku .click()
, co działa zgodnie z oczekiwaniami. Jeśli użyję kodu jak pokazano powyżej, $(this)
nie może dowiedzieć się, że .click()
wystrzelił, a kod nie działa.
Czy jest coś, co mogę zrobić, aby selektor $(this)
wynegocjował, co zostało uruchomione, zachowując go w open_menu()
?
Próbowałem tego, ale być może nie zrobiłem tego poprawnie. Dodałem 'test = $ (this);' tuż przed przełącznikiem i przekazałem to. Dźwięk w prawo? – Combobreaker
Gotowy do pracy. Musiał użyć 'this', a nie' $ (this) '. Dzięki. – Combobreaker