Frage

Ich habe den folgenden code, der soll halt alles, was passiert, wenn Sie auf einen link klicken, außer für Feuerungs-und alert.Das Ziel der Verknüpfung ist abgebrochen, aber ein Klick auf den link, scrollt Sie nach oben auf der Seite.Wie kann ich verhindern, dass dieses Verhalten?Vielen Dank

$('a#target').click(function(event){
    event.preventDefault();
    alert('End of demo');
});

UPDATE mein link sieht so aus:

<a href="#">Submit</a>
War es hilfreich?

Lösung

Nein, preventDefault soll nicht alles, es soll, genau das zu tun, was es sagt - verhindern, dass die Standard-Aktion.d.h.Wenn Sie auf einen link mit einem "href" es wird verhindert, dass die Standardaktion des Browsers, die ist zu gehen Sie zu diesem link.

Wenn Sie wollen, um zu beenden alle anderen Ereignisse an diesem link, Sie müssen return false am Ende der event-handler UND stellen Sie sicher, dass event-handler ausgeführt wird, bevor alle anderen.

UPDATE:

Vielen Dank für die Veröffentlichung, den link und den href-Wert.Ich Wette, dass das, was passiert ist, dass JavaScript auf einen Fehler vor, die click-handler kann jemals gefeuert.Wie der erste Kommentar auf diese Antwort richtig deutet - preventDefault soll verhindern, dass der link aus, springen auf Anker innerhalb der Seite als auch.Wenn nicht, tun es die Aufgabe, dann ist es wahrscheinlich, weil es einen JavaScript-Fehler an anderer Stelle auf der Seite.

All dies gesagt wird, sind Sie sicher, dass Sie geschrieben die korrekte HTML?

$('a#target').click(...

Anbei einen click-handler zu einem link, der wie folgt aussieht:

<a href="#" id="target">Submit</a>

Und ein letzter Gedanke: wenn ein anchor-element hat nur action(s) attached to it via JavaScript, warum dann geben Sie die option "href" - Attribut überhaupt?

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top