2010-02-03 18 views
9

¿Hay alguna razón para usar uno de los siguientes más que los otros:eventos JavaScript en línea sintaxis

<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);" /> 

Y por favor, no gastar su valioso tiempo para decirme a usar jQuery o attachEvent/addEventListener. En realidad, no es el objetivo de mi pregunta.

+0

que no podía entender su pregunta :(objetivo – Sarfraz

+0

¿Puedo decir que use 'input.onclick = manageClick;' y tienen 'manageClick' mira' this'? Es la forma más simple de 'attachEvent' /' addEventListener' para cuando no necesitas múltiples listeners. – bobince

+0

@bobince. Claro que puedes;) Pero como sabes, estoy en la plantilla lado, y solo estaba cuestionando si esos "retornos", ";", etc ... son útiles o no. – Mic

Respuesta

8

No hay diferencia en absoluto entre los dos primeros, en este situación específica el punto y coma es opcional.

El tercero evitará que se produzca una acción predeterminada, que los dos primeros no.

El cuarto evitará la acción predeterminada o no, según el valor de retorno de manageClick.

El quinto es incorrecto.

(Y dondequiera adecuado, utilizar attachEvent/addEventListener - patos y corre)

+0

por lo que javascript: manageClick() es la forma correcta de escribirlo? Pensé que javascript: estaba en desuso, y solo se usa en atributos que no son de eventos. (comentario editado) –

+0

+1. pero cambiaría a "siempre que sea apropiado", usar "attachEvent"/"addEventListener" y me preguntaría si alguna vez es así. –

+0

@kb: No, dije "javascript: manageClick" era la forma * incorrecta * de escribirlo. –

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

edición retorno es preferible en los casos en que se desea controlar el comportamiento del elemento, como por <a> y <input type="submit">, por lo que suponiendo que este es el caso, por encima es su respuesta, si no basta con omitir el retorno y justo ir con onclick="manageClick(this);".

También, echar un vistazo a http://crisp.tweakblogs.net/blog/313/the-useless-javascript-pseudo-protocol.html respecto al uso de javascript:.^_^