Ich benutze javascript:void(0)
.
Drei Gründe. Förderung der Verwendung von #
in einem Team von Entwicklern führt unweigerlich dazu, dass einige den Rückgabewert der aufgerufenen Funktion wie folgt verwenden:
function doSomething() {
//Some code
return false;
}
Aber dann vergessen sie, die return doSomething()
im Onclick und verwenden Sie einfach doSomething()
.
Ein zweiter Grund für die Vermeidung von #
ist, dass die endgültige return false;
wird nicht ausgeführt, wenn die aufgerufene Funktion einen Fehler auslöst. Daher müssen die Entwickler auch daran denken, jeden Fehler in der aufgerufenen Funktion angemessen zu behandeln.
Ein dritter Grund ist, dass es Fälle gibt, in denen die onclick
Ereigniseigenschaft dynamisch zugewiesen wird. Ich ziehe es vor, eine Funktion aufzurufen oder dynamisch zuzuweisen, ohne die Funktion speziell für die eine oder andere Anbringungsmethode programmieren zu müssen. Daher ist mein onclick
(oder auf irgendetwas) in HTML-Auszeichnungen sehen so aus:
onclick="someFunc.call(this)"
OR
onclick="someFunc.apply(this, arguments)"
Verwendung von javascript:void(0)
vermeidet alle oben genannten Kopfschmerzen, und ich habe keine Beispiele für einen Nachteil gefunden.
Wenn Sie also ein einsamer Entwickler sind, können Sie Ihre eigene Entscheidung treffen, aber wenn Sie in einem Team arbeiten, müssen Sie sich für eine der beiden Möglichkeiten entscheiden:
Utilisez href="#"
vergewissern Sie sich onclick
enthält immer return false;
am Ende, damit eine aufgerufene Funktion keinen Fehler auslöst, und wenn Sie eine Funktion dynamisch an die onclick
Eigenschaft stellen Sie sicher, dass sie nicht nur keinen Fehler auslöst, sondern auch false
.
OR
Utilisez href="javascript:void(0)"
Das zweite ist natürlich viel einfacher zu vermitteln.
14 Stimmen
Warum einen Link verwenden, wenn Sie eine Schaltfläche wünschen? Dann gibt es kein Problem mit Pseudo-Protokollen.
2 Stimmen
"Validierungszwecke" - Ah, das hätte das rote Fähnchen sein sollen, das anzeigt, dass diese Frage alt ist. Niemand kümmert sich mehr um Validierung oder Web-Standards. Es gab eine kurze Periode, in der es wichtig war und die Dinge gut aussahen, aber jetzt macht jeder jeden Müll, den er will ( Husten youtube Husten ), und die Browser nehmen sie auf, wie der IE der 90er Jahre.