Po zwolnieniu i evt.preventDefault()
jak mogę wznowić domyślne działania?
javascript
jquery
preventdefault
Bryan
źródło
źródło
Odpowiedzi:
Zgodnie z komentarzem @Prescott, przeciwieństwo:
Możliwe:
Zasadniczo równa się „zrób domyślnie” , ponieważ nie zapobiegamy już temu.
W przeciwnym razie chętnie wskażę odpowiedzi na inne komentarze i odpowiedzi:
Jak odznaczyć detektor wywołujący event.preventDefault () (przy użyciu jQuery)?
Jak ponownie włączyć event.preventDefault?
Zauważ, że drugi został zaakceptowany z przykładowym rozwiązaniem podanym przez redsquare (opublikowanym tutaj dla bezpośredniego rozwiązania na wypadek, gdyby nie zostało zamknięte jako duplikat):
źródło
i przeciwnie
Twoje zdrowie!
źródło
return true
: nic.Aby przetworzyć polecenie przed kontynuowaniem łącza ze
click
zdarzenia w jQuery:Na przykład:
<a href="http://google.com/" class="myevent">Click me</a>
Zapobiegaj i wykonuj za pomocą jQuery:
Lub po prostu biegnij
window.location = this.href;
zapreventDefault();
źródło
Musiałem opóźnić przesłanie formularza w jQuery, aby wykonać asynchroniczne wywołanie. Oto uproszczony kod ...
źródło
DOBRZE ! działa w przypadku zdarzenia kliknięcia:
źródło
i jego przeciwieństwo (standard):
źródło: https://developer.mozilla.org/en-US/docs/Web/API/Event/returnValue
źródło
Sugerowałbym następujący wzór:
... chyba że czegoś mi brakuje.
http://jsfiddle.net/DdvcX/
źródło
Nie ma przeciwnej metody
event.preventDefault()
zrozumienia, dlaczego najpierw trzeba spojrzeć na to, co sięevent.preventDefault()
dzieje, kiedy się nazywa.Pod maską funkcjonalność preventDefault zasadniczo nazywa zwracanie wartości false, co zatrzymuje dalsze wykonywanie. Jeśli znasz stare metody Javascript, kiedyś było modne użycie return false do anulowania zdarzeń na rzeczach takich jak przesyłanie formularzy i przyciski za pomocą return true (zanim jQuery był w pobliżu).
Jak zapewne mogłeś już wypracować na podstawie prostego wyjaśnienia powyżej: przeciwieństwo
event.preventDefault()
jest niczym. Po prostu nie zapobiegasz zdarzeniu, domyślnie przeglądarka zezwala na zdarzenie, jeśli mu nie zapobiegasz.Poniżej wyjaśnienie:
W powyższym kodzie zauważysz, że sprawdzamy, czy parametr allowSubmit jest fałszywy. Oznacza to, że nie będziemy mogli przesyłać formularza przy użyciu,
event.preventDefault
a następnie wykonamy logikę sprawdzania poprawności, a jeśli będziemy zadowoleni, ustaw parametr allowSubmit na true.Jest to naprawdę jedyna skuteczna metoda działania przeciwnego
event.preventDefault()
- możesz także spróbować usunąć zdarzenia, które zasadniczo doprowadziłyby do tego samego.źródło
Oto coś przydatnego ...
Najpierw klikniemy na link, uruchomimy kod, a następnie wykonamy domyślną akcję. Będzie to możliwe przy użyciu event.currentTarget Spójrz. Tutaj spróbujemy uzyskać dostęp do Google na nowej karcie, ale zanim będziemy musieli uruchomić kod.
źródło
Oto, co ustawiłem:
I aby to cofnąć:
źródło
Żadne z rozwiązań nie pomogło mi tutaj i zrobiłem to, aby rozwiązać moją sytuację.
I funkcji
clickEvent()
,źródło
Podejrzewam, że „przeciwieństwem” byłoby symulowanie zdarzenia. Możesz użyć
.createEvent()
Idąc za przykładem Mozilli:
Patrz: document.createEvent
jQuery ma,
.trigger()
więc możesz wyzwalać zdarzenia na elementach - czasem przydatne.źródło
jquery on () może być innym rozwiązaniem tego problemu. ucieleśniająco, jeśli chodzi o wykorzystanie przestrzeni nazw .
jquery on () to tylko bieżący sposób wiązania zdarzeń (zamiast bind ()). off () ma na celu ich usunięcie. a gdy używasz przestrzeni nazw, możesz dodawać i usuwać wiele różnych zdarzeń.
teraz za pomocą przestrzeni nazw możesz dodać wiele z tych zdarzeń i możesz je usunąć, w zależności od potrzeb. Podczas gdy przesyłanie może nie być najlepszym przykładem, może się przydać po kliknięciu, naciśnięciu klawisza lub cokolwiek innego.
źródło
To nie jest bezpośrednia odpowiedź na pytanie, ale może komuś pomóc. Chodzi mi o to, że wywołujesz preventDefault () tylko w oparciu o niektóre warunki, ponieważ nie ma sensu mieć zdarzenia, jeśli wywołasz funkcję preventDefault () we wszystkich przypadkach. Zatem posiadanie if i wywoływanie preventDefault () tylko wtedy, gdy spełniony jest warunek / warunki, będzie działał w zwykły sposób dla pozostałych przypadków.
});
źródło
możesz użyć tego po metodzie „preventDefault”
// Tutaj evt.target zwraca domyślne zdarzenie (np .: defult url etc)
// Tutaj zapisujemy domyślne zdarzenie.
źródło
Zawsze możesz użyć tego skryptu dołączonego do jakiegoś zdarzenia kliknięcia:
przykładem użycia jest:
źródło
ten kod działał dla mnie w celu ponownego utworzenia zdarzenia po użyciu:
źródło
Użyłem następującego kodu. Działa dla mnie dobrze.
źródło
event.preventDefault()
;