Czy ktoś wie, jak wyłączyć link w jquery BEZ korzystania return false;
?
W szczególności staram się wyłączyć link elementu, wykonując kliknięcie go za pomocą jquery, która uruchamia niektóre rzeczy, a następnie ponownie włączając ten link, aby po ponownym kliknięciu działał jako domyślny.
Dzięki. Dave
AKTUALIZACJA
Oto kod. Po zastosowaniu .expanded
klasy należy ponownie włączyć wyłączony link.
$('ul li').click(function(e) {
e.preventDefault();
$('ul').addClass('expanded');
$('ul.expanded').fadeIn(300);
//return false;
});
Odpowiedzi:
Zapobiegnie to domyślnemu zachowaniu hiperłącza, które polega na odwiedzeniu określonego href.
Z jQuery samouczka :
Jeśli chcesz
preventDefault()
tylko wtedy, gdy określony warunek jest spełniony (na przykład coś jest ukryte), możesz przetestować widoczność swojego ul z rozszerzoną klasą . Jeśli jest widoczny (tzn. Nie ukryty), link powinien zostać uruchomiony normalnie, ponieważ instrukcja if nie zostanie wprowadzona, a zatem zachowanie domyślne nie zostanie uniemożliwione:źródło
Spróbuj tego:
EDYTOWAĆ-
Ze zaktualizowanego kodu:
źródło
href="#"
Dla innych, którzy przybyli tutaj za pośrednictwem Google, takich jak ja - oto inne podejście:
Pamiętaj: nie tylko jest to klasa css
ale także te dwa
dzięki czemu możesz łatwo dodawać i usuwać kolejne klasy za pomocą jQuery. Nie trzeba dotykać href ...
Uwielbiam jQuery! ;-)
źródło
on()
do filtrowania wszystkicha.disabled
linków i zapobiegania domyślnym. Następnie wszystko, co musisz zrobić, to włączyć / wyłączyć wyłączoną klasę, a link sam się obsłuży, gdy zostanie „włączony”.if(disabledCondition)
== true
. :)if ($(this).hasClass('disabled')) { e.preventDefault(); }
?Oto alternatywne rozwiązanie css / jQuery, które preferuję ze względu na zwięzłość i zminimalizowane skrypty:
css:
jQuery:
źródło
.prop("tabindex", "-1");
poaddClass
Możesz usunąć kliknięcie linku, wykonując następujące czynności;
Możesz ponownie włączyć link, obserwując,
Nie można używać właściwości „disabled” dla łączy.
źródło
Jeśli wybierzesz trasę href, możesz ją zapisać
Wyłączyć:
Następnie włącz ponownie, używając:
W jednym przypadku musiałem to zrobić w ten sposób, ponieważ zdarzenia kliknięcia były już powiązane gdzie indziej i nie miałem nad tym kontroli.
źródło
Zawsze używam tego w jQuery do wyłączania linków
źródło
$("form a").attr("disabled", false);
aby włączyć ją ponownieprzykład linku HTML:
użyj tego w jQuery
dodaj to do css:
źródło
pointer-events: none
właściwość z elementów kotwiczących powracają do robienia tego, co poprzednio robili po kliknięciu. Więc jeśli byłyby to podstawowe hiperłącza, powracają do nawigacji do adresu URL w swoimhref
atrybucie, a jeśli mają ustawioną procedurę obsługi zdarzenia kliknięcia, staje się ona ponownie aktywna. Znacznie prostsze niż zapisywaniehref
wartości i procedur obsługi kliknięć.Moje ulubione w „kasie do edycji przedmiotu i zapobieganiu kliknięciom„ dzikiego zachodu ”w dowolnym miejscu - w kasie”
Więc jeśli chcę, aby wszystkie linki zewnętrzne na pasku narzędzi drugiej akcji były wyłączone w „trybie edycji”, jak opisano powyżej, dodam funkcję edycji
Przykład linku po pożarze:
A teraz MOŻESZ użyć wyłączonej właściwości dla linków
Twoje zdrowie!
źródło
Należy znaleźć odpowiesz tutaj .
Dzięki @Will i @Matt za to eleganckie rozwiązanie.
źródło
możesz po prostu ukryć i pokazać link, jak chcesz
źródło
Wystarczy uruchomić coś, ustawić flagę, zwrócić false. Jeśli flaga jest ustawiona - nie rób nic.
źródło
unbind()
był przestarzałyjQuery 3
,off()
zamiast tego użyj metody:źródło
Wiem, że nie dotyczy to jQuery, ale możesz wyłączyć link za pomocą prostego css:
wyglądałby HTML
źródło
Działa to w przypadku łączy, które mają wbudowany atrybut onclick. Pozwala to również później usunąć „return false” w celu włączenia.
źródło
Po prostu użyj
$("a").prop("disabled", true);
. To naprawdę wyłączy element de link. Musi byćprop("disabled", true)
. Nie używajattr("disabled", true)
źródło