2016-08-17 1 views
-1

Gibt es einen Unterschied zwischenLink-Stil-Button in JavaScript - verschiedene Optionen

<a href="javascript:;"></a> 

und

<a href="javascript:void(0);"></a> 

?

Ich möchte Link-Stil-Taste haben, die eine JS-Funktion auf Klick rufen Sie einfach an, so dass ich die folgenden:

$('<a>', { 
    'href': 'javascript:;', 
    text: 'Click me', 
    click: doStuff 
    }); 

Ich weiß, dass es über button Tag und CSS erreicht werden kann, aber ich denke, es ist viel einfachere Lösung.

+0

Kein Unterschied im Ergebnis, obwohl die Verwendung von 'href =" # "' und der Aufruf von 'preventDefault()' im Event-Handler eher semantisch wäre. –

+1

[** Links sind keine Schaltflächen **] (http://www.karlgroves.com/2013/05/14/links-are-not-buttons-neitere-are-divs-and-spans/) Behalten Sie das Web Reinigen Sie, verwenden Sie das richtige Element und ** Stil ** es, wie Sie es aussehen möchten. Nimm keine unsemantischen Abkürzungen. –

+0

Binden Sie die Klickaktion, wenn Sie das Element erstellen, es ist kein "Javascript" -Protokoll erforderlich. –

Antwort

0

Es gibt keinen funktionalen Unterschied, nein, beide werden nichts tun, wenn Sie darauf klicken (abgesehen davon, dass Sie einen Klick-Handler auslösen, den Sie auf ihnen haben). Was folgt javascript: Pseudo-Protokoll muss nur gültige JavaScript sein. ; und void(0) sind beide gültige JavaScript.

Kann ich einfach das Javascript-Protokoll BTW weglassen?

Der Inhalt der href wird voraussichtlich eine URL sein. Wenn Sie das Pseudo-Protokoll javascript; nicht verwenden, müssen Sie etwas anderes verwenden.


Ich werde beachten Sie, dass Sie andere Optionen, einschließlich nicht das javascript: pseudo-Protokoll überhaupt verwendet wird (Verwendung button type="button", mit span, href="#fragment" verwenden und im Idealfall die Fragmente sinnvoll machen, etc.), aber das isn Was hast du gefragt? :-)

+0

Kann ich gerade das' javascript' Protokoll weglassen? – FrozenHeart

Verwandte Themen