Mam takie linki:
<a href="#" onclick="myfunc({a:1, b:'hi'})" />click</a>
<a href="#" onclick="myfunc({a:3, b:'jo'})" />click</a>
I chciałbym zrobić w preventDefault()
środku myfunc()
, ponieważ #
zostanie dodane w pasku adresu po kliknięciu linku (bez robienia return false;
lub href='javascript:void(0);'
)
czy to możliwe? Czy mogę umieścić wydarzenie w środkumyfunc()
javascript
jquery
html
Omu
źródło
źródło
return false
zatrzymuje tylko propagację w ramach jQuery.Odpowiedzi:
Wierzę, że możesz przekazać
event
funkcję inline, która będzieevent
obiektem dla podniesionego zdarzenia w przeglądarkach zgodnych z W3C (tj. Starsze wersje IE będą nadal wymagały wykrywania wewnątrz funkcji obsługi zdarzeń, aby się przyjrzećwindow.event
).Szybki przykład .
event
przekazany do programuonclick
obsługi na coś innego, np.e
Kliknij uruchom, a następnie zwróć uwagę, że przekierowanie ma miejsce po alercie (okienko wyników staje się białe, demonstrując przekierowanie).źródło
myfunc(event, {a:123, b:"asdas"})
function myfunc(o, e) {...}
można go nazwać jakomyfunc({a:1, b:'hi'}, event)
.function sayHi() { event.preventDefault(); alert("hi"); }
Najprostszym rozwiązaniem jest po prostu:
Właściwie jest to dobry sposób na pomijanie pamięci podręcznej dokumentów z rezerwą dla przeglądarek bez obsługi JS (bez pomijania pamięci podręcznej, jeśli nie ma JS)
Jeśli włączony jest JavaScript, otwiera plik PDF z ciągiem zapytania usuwającym pamięć podręczną, jeśli nie, otwiera plik PDF.
źródło
Spróbuj tego:
źródło
$("body").on("click","a",function(e) { e.preventDefault() });
. W obu przypadkach żadne rozwiązanie nie wpłynie znacząco na wydajność.źródło
return false
nie jest zalecane, ponieważ uniemożliwi to również uruchomienie wszystkich innych programów obsługi zdarzeń w tym elemencie i zatrzyma zdarzenie przed propagowaniem do wyższych elementów.Dodaj unikalną klasę do linków i javascript, który zapobiega domyślnym linkom z tą klasą:
źródło
Czy nie możesz po prostu usunąć atrybutu href ze znacznika a?
źródło
Myślę, że kiedy używamy onClick, chcemy zrobić coś innego niż default. Tak więc dla wszystkich linków z onClick:
źródło
Prosty!
źródło
Możesz uzyskać dostęp do wydarzenia z onclick w następujący sposób:
a w funkcji javascript radzę dodać tę instrukcję pierwszego wiersza jako:
następnie użyj wszędzie e jako zmiennej zdarzenia
źródło
e.preventDefault (); z https://developer.mozilla.org/en-US/docs/Web/API/event.preventDefault
Lub zwróć false ze swojej metody.
źródło
Bez żadnej biblioteki JS ani jQuery. Aby otworzyć ładne okno podręczne, jeśli to możliwe. Nie udaje się bezpiecznie otworzyć normalnego łącza.
I funkcja pomocnicza:
źródło