Ich habe solche Links:
<a href="#" onclick="myfunc({a:1, b:'hi'})" />click</a>
<a href="#" onclick="myfunc({a:3, b:'jo'})" />click</a>
Und ich möchte ein preventDefault()
Inside machen myfunc()
, weil ein #
in der Adressleiste hinzugefügt wird, wenn auf den Link geklickt wird (ohne zu tun return false;
oder href='javascript:void(0);'
)
Ist das möglich? Kann ich die Veranstaltung ins Haus bekommen?myfunc()
javascript
jquery
html
Omu
quelle
quelle
return false
stoppt nur die Weitergabe innerhalb von jQuery.Antworten:
Ich glaube, Sie können
event
die Funktion inline übergeben, die dasevent
Objekt für das ausgelöste Ereignis in W3C-kompatiblen Browsern sein wird (dh ältere Versionen des IE erfordern weiterhin eine Erkennung innerhalb Ihrer Ereignishandlerfunktion, um sie anzuzeigenwindow.event
).Ein kurzes Beispiel .
event
an denonclick
Handler übergebene Option in etwas anderes wiee
, klicken Sie auf Ausführen und beachten Sie, dass die Umleitung nach der Warnung erfolgt (der Ergebnisbereich wird weiß und zeigt eine Umleitung an).quelle
myfunc(event, {a:123, b:"asdas"})
function myfunc(o, e) {...}
es dann als aufgerufen werdenmyfunc({a:1, b:'hi'}, event)
.function sayHi() { event.preventDefault(); alert("hi"); }
Die einfachste Lösung ist einfach:
Es ist eigentlich eine gute Möglichkeit, Cache-Busting für Dokumente mit einem Fallback für keine JS-fähigen Browser durchzuführen (kein Cache-Busting, wenn kein JS vorhanden ist).
Wenn JavaScript aktiviert ist, wird die PDF-Datei mit einer Cache-Busting-Abfragezeichenfolge geöffnet. Andernfalls wird nur die PDF-Datei geöffnet.
quelle
Versuche dies:
quelle
$("body").on("click","a",function(e) { e.preventDefault() });
. In beiden Fällen wird keine der beiden Lösungen die Leistung erheblich beeinflussen.quelle
return false
wird dies nicht empfohlen, da dadurch auch verhindert wird, dass alle anderen Ereignishandler für dieses Element ausgeführt werden, und verhindert wird, dass das Ereignis zu höheren Elementen aufsteigt.Fügen Sie den Links eine eindeutige Klasse und ein Javascript hinzu, das die Standardeinstellung für Links mit dieser Klasse verhindert:
quelle
Können Sie nicht einfach das href-Attribut aus dem a-Tag entfernen?
quelle
Ich denke, wenn wir onClick verwenden, möchten wir etwas anderes als die Standardeinstellung tun. Also, für alle Ihre Links mit onClick:
quelle
Einfach!
quelle
Sie können von onclick wie folgt auf das Ereignis zugreifen:
und bei Ihrer Javascript-Funktion ist mein Rat, diese Aussage in der ersten Zeile wie folgt hinzuzufügen:
Verwenden Sie dann überall e als Ereignisvariable
quelle
e.preventDefault (); von https://developer.mozilla.org/en-US/docs/Web/API/event.preventDefault
Oder haben Sie false von Ihrer Methode zurückgegeben.
quelle
Ohne JS-Bibliothek oder jQuery. Wenn möglich, öffnen Sie ein schönes Popup-Fenster. Fehler beim normalen Öffnen der Verbindung.
Und die Hilfsfunktion:
quelle