2009-06-03 8 views
17
<script> 
function Hello(){ 
    var caller = arguments.callee.caller; 
    alert(caller); 
} 
</script> 

<input type="button" id="btnHello" value="Hello" onclick="Hello()" /> 

¿Cómo conseguir el botón de Identificación de la función Hola anteriormente con fuera pasando el argumento alguno en la función HolaComo llegar al evento que llama y el DOM ID elemento

+2

Por cierto, arguments.callee.caller es una referencia a la función, si la hay, que llamó a la función actual. No está implementado en todos los navegadores, y los guionistas de ecma lo han desaprobado durante años. – kennebec

Respuesta

26

Un objeto de evento se pasa al Hola funciona automáticamente Debe recibirlo como argumento y luego realizar un trabajo multiplataforma para captar el elemento. Un marco de JS te ayudará aquí.

function Hello(e){ 
    var caller = e.target || e.srcElement; 
    console.log(caller); 
} 

EDITAR
1 comentario de Andrew continuación. Use addEventListener y attachEvent para las mejores prácticas.

+2

el objeto de evento se pasa solo si se usa como btnid.onclick = function (e) {alert (e.target)}; Pero cómo obtener el objeto de evento cuando aplicamos evento como en línea. – Jineesh

+4

IIRC, puede obtenerlo configurando el atributo 'onlick' en" Hola (evento) ". –

+2

Adjunte eventos con JavaScript discreto en lugar de usar un controlador de eventos en línea, luego puede usar el objeto de evento pasado a devoluciones de llamadas de eventos. –

Cuestiones relacionadas