A pesar de que algunas personas podrían decir, no es mala práctica (con la advertencia de que es el único detector de eventos que desea en este elemento), y es la forma más simple (y más frecuente) de utilizar un detector de eventos , pero hay dos cambios que le haría.
En primer lugar, si Javascript no está habilitado, el enlace será inútil (aunque el href #
hará que el navegador se desplace hasta la parte superior de la página, lo que probablemente no sea deseable). Del mismo modo, con Javascript activado, al hacer clic en el enlace, el navegador seguirá el href y se desplazará hacia arriba.
En su lugar, me gustaría usar algo como esto:
<a href="[url to JS-less way of doing the same thing]" onclick="doSomething(); return false">Click here</a>
Alternativamente, si es realmente un javascript-único, que puede crear el enlace oculto por defecto usando CSS y el uso de JavaScript para que sea visible (para que los usuarios con JS deshabilitados no vean un enlace inútil).
El hecho de que usar un atributo de manejador de eventos no sea "discreto" no tiene nada que ver con los estándares. De hecho, los atributos del controlador de eventos como 'onclick' ** están ** estandarizados en las especificaciones de HTML 4. –
"mala práctica" y "estándares" son cosas diferentes. Voy a aclarar la respuesta. – Quentin
@czupe - El método 'click()' no tiene absolutamente nada que ver con la pregunta o esta respuesta (que se trata de * asignar * eventos, no * activarlos * programáticamente). – Quentin