2010-02-03 7 views
9

Gibt es einen Grund eine der folgenden Möglichkeiten mehr zu verwenden, als die anderen:JavaScript Inline-Ereignisse Syntax

<input type="button" value="b1" onclick="manageClick(this)" /> 
<input type="button" value="b2" onclick="manageClick(this);" /> 
<input type="button" value="b2" onclick="manageClick(this);return false;" /> 
<input type="button" value="b3" onclick="return manageClick(this);" /> 
<input type="button" value="b4" onclick="javascript:return manageClick(this);" /> 

Und bitte nicht verbringen Sie Ihre wertvolle Zeit, mir zu sagen jQuery oder attachEvent/addEventListener zu verwenden. Es ist nicht wirklich das Ziel meiner Frage.

+0

i nicht objektiv verstehe Ihre Frage könnte :( – Sarfraz

+0

Kann ich Ihnen sagen, verwenden 'input.onclick = manageClick;' und haben 'manageClick' sieht' this' an? Es ist die einfachere Form von 'attachEvent' /' addEventListener', wenn Sie nicht mehrere Listener benötigen. – bobince

+0

@bobince. Sicher können Sie;) Aber wie Sie wissen, bin ich auf dem Templating Seite und fragte nur, ob diese "zurück", ";", usw. nützlich sind oder nicht. – Mic

Antwort

8

Es gibt keinen Unterschied zwischen den ersten beiden, in dieser spezifischen Situation ist das Semikolon optional.

Die dritte wird verhindern, dass eine Standardaktion auftritt, was die ersten beiden nicht tun.

Die vierte wird die Standardaktion verhindern oder nicht abhängig von dem Rückgabewert manageClick.

Die fünfte ist falsch.

(Und wo immer geeignet, verwenden attachEvent/addEventListener-Enten und läuft)

+0

so Javascript: manageClick() ist der richtige Weg, um es zu schreiben? Ich dachte Javascript: war veraltet und nur in Nicht-Ereignis-Attribute verwendet. (bearbeiteter Kommentar) –

+0

+1. aber ich würde zu "wann immer möglich" wechseln, "attachEvent' /' addEventListener' "verwenden, und ich würde mich fragen, ob es jemals ist. –

+0

@ kb: Nein, ich sagte "javascript: manageClick" war die * falsche * Möglichkeit, es zu schreiben. –

4
<input type="button" value="b3" onclick="return manageClick(this);" /> 

bearbeiten Rückkehr in Fällen vorzuziehen ist, wo Sie wollen Element Verhalten steuern, wie <a> und <input type="submit">, so vorausgesetzt, dies der Fall ist, oben ist die Antwort, wenn nicht nur die Rückkehr weglassen und nur gehe mit onclick="manageClick(this);".

Schauen Sie sich auch http://crisp.tweakblogs.net/blog/313/the-useless-javascript-pseudo-protocol.html in Bezug auf die Verwendung von javascript:.^_^