[jQuery]Zablokowanie domyślnej akcji

Odpowiedz Nowy wątek
2011-10-17 23:41
0

Witajcie,

mam problem z rozwijanym menu. Chodzi o to, że element z którego rozwija się lista jest ujęty jako link <a href="#" >menu 1</a> i po kliknięciu rozwija podane elementy. Problem jest tego typu, że po kliknięciu strona "wraca" na samą górę i nie wiem jak to zablokować. Jakieś porady? Próbowałem przez dodanie $(this).bind("submit", function() { return false; }) ale nie pomogło.

Tak wygląda rozwijanie menu.

function InitMenu()
{
    $('li', '#menu').hover(function(){
        $(this).addClass('sfhover');
    });
    $('li', '#menu').click(function(){
        $('ul', this).slideDown('fast');
        $(this).addClass('sfhover');
    });
    $('li', '#menu').mouseleave(function(){ 
        $('ul', this).slideUp('fast');
        $(this).removeClass('sfhover');
    });
} 
edytowany 1x, ostatnio: robertinho, 2011-10-17 23:42

Pozostało 580 znaków

2011-10-18 00:44
0

$(this).attr("onsubmit","");
możesz również zapisać sobie poprzednią wartość i po skończeniu robienia czegośtam przywrócić ją


░█░█░█░█░█░█░█░█░█░█░█░

Pozostało 580 znaków

2011-10-18 07:58

@krwq:
Nie wiem, czy czegoś nie doczytałeś, czy też programujesz przypadkowo jak autor tematu (?), ale źle mu podpowiadasz... Zupełnie nie o to chodzi. (Chyba że to ja czegoś kompletnie tu nie rozumiem :P).

@robertinho:
Czemu dajesz to w zdarzeniu submit jakiegoś elementu listy (li)? Elementy listy nie mają takiego zdarzenia -- jest ono charakterystyczne dla formularzy.

Ty tak naprawdę chcesz zablokować domyślną akcję kliknięcia w link. Bo kliknięcie w link powoduje, że przeglądarka za nim podąża. W przypadku linku z href="#" oznacza to przewinięcie strony do góry.

Dodaj do linków funkcję obsługi zdarzenia click, w której wywołasz metodę preventDefault() na obiekcie zdarzenia (zauważ, że deklaruję tutaj obiekt zdarzenia jako parametr, który nazywam sobie evt -- od event):

$('a', '#menu').click(function(evt) {
  evt.preventDefault();
});
edytowany 3x, ostatnio: bswierczynski, 2011-10-18 08:43

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0