HREF-Link, der nichts anvisiert, keinen Hash oder void (0) verwenden möchte

7

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?

    
Mattis 29.06.2011, 00:16
quelle

4 Antworten

15

Verwenden Sie event.preventDefault() [docs] Methode.

%Vor%

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.

%Vor%     
user113716 29.06.2011, 00:18
quelle
3

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.

    
Eevee 29.06.2011 00:29
quelle
3

Dies ist eine unangemessene Verwendung eines Links. Sie sollten eine Schaltfläche oder ein anderes Element verwenden, das anzeigt, dass das Klicken etwas bewirkt, aber nicht zur Navigation führt.

    
RobG 29.06.2011 00:35
quelle
1

Sie können beispielsweise preventDefault verwenden, zum Beispiel:

%Vor%     
Grant Thomas 29.06.2011 00:18
quelle

Tags und Links