Ich habe einen Link, auf den ich klicken kann, um einen Teil des jQuery-Codes auszulösen.
Momentan habe ich
%Vor%und
%Vor%was gut funktioniert. Aber ich habe es immer gehasst, Hash auf diese Weise zu verwenden. Die Seite flackert und der Hash wird zur Seiten-URL hinzugefügt.
Eine Alternative ist die Verwendung von
%Vor%Ich mag es aber auch nicht, diesen Code in der Statusleiste des Browsers zu sehen. Es sieht klebrig aus.
Was ich lieber hätte, ist ein erklärender JavaScript-Platzhalter, der nichts bewirkt, wie
%Vor%was tatsächlich funktioniert, aber einen ReferenceError in der JavaScript-Konsole auslöst, da es keine solche Funktion gibt. Was ist die Mindestdefinition einer Funktion, die nichts bewirkt?
Gibt es noch andere Alternativen?
Sollte ich den Link überspringen und etwas wie
verwenden? %Vor%stattdessen?
Verwenden Sie event.preventDefault()
[docs] Methode.
Dadurch wird verhindert, dass der Hash-Effekt beim Klicken wirksam wird. Oder entfernen Sie den Hash und verwenden Sie CSS, um ihn zu stylen.
Sie können auch eine tatsächliche URL für die href
angeben, um eine ordnungsgemäße Verschlechterung zu vermeiden.
Was ist die Mindestdefinition einer Funktion, die nichts tut?
Hier ist eine No-Op-Funktion:
%Vor% ... oder da Sie jQuery verwenden, können Sie die jQuery.noop()
[Dokumentation verwenden ] Methode, die auch nur eine leere Funktion ist.
Im Idealfall sollte der Link mit einer Seite verlinkt sein, die die JavaScript-Funktionalität für Benutzer ohne JS repliziert. Dann würde preventDefault
die eigentliche Navigation verhindern, wie die anderen Antworten gezeigt haben.
Wenn dies in diesem Fall nicht sinnvoll ist, beachten Sie, dass das Attribut href
optional ist. Sie können es einfach ganz weglassen.
Sie können beispielsweise preventDefault
verwenden, zum Beispiel:
Tags und Links javascript html jquery