Tengo un elemento con un evento onclick (deje de lado los consejos de mejores prácticas por ahora):
<div onclick="myfunc()">en la función:
function myfunc(e) { console.log(e);e es indefinido. Si pongo esto en el archivo console.log, esto no está definido
Según tengo entendido, el evento debe pasarse al controlador para que el código envíe el objeto del evento a la consola, y esto debería hacer referencia al elemento div.
Esto parece muy básico y no encuentro ninguna explicación de por qué esto podría suceder.
Segunda EDICIÓN: los comentarios dieron como resultado que mi función funcionara, pero todavía no tengo una respuesta de por qué "esto" no está definido en la función. Obtengo el resultado con event.currentTarget, pero arroja un error.
EDITAR:
Basado en el coloquio con Pointy, puse "myfunc(event)" e hice los cambios correspondientes a la declaración de myfunc, y console.log imprimió el evento:
PointerEvent {isTrusted: true, pointerId: 1, width: 1, height: 1, pressure: 0, …}Ok, bien, PERO cuando miro el listado, dice
currentTarget: null¿No debería ser currentTarget el evento div? Además, esto aún no está definido, lo que tiene sentido si currentTarget es nulo, pero todo lo que leo dice que en un controlador creado de esa manera, directamente en el elemento, esto debería referirse al elemento.
Las respuestas están en los comentarios, gracias a @Pointy, @Luke Trenaman y @Barmar