2012-03-11 11 views
7

quiero saber dentro del controlador de eventos onchange, que control provocó el evento de cambio (o desenfoque). i intentado utilizar jQuery $(":focus") para ese fin, peroobtener elemento, provocó el evento de cambio en javascript

$('.some_class').change(function (e) { 
    console.log(e.target); 
    console.log($(':focus').get(0)); // always `undefined`. 
    /* ......... other code......... */ 
}); 
+1

proporcionan todo el controlador de eventos ... – xandercoded

+0

$ ('. Some_class'). Cambio (function (e) { \t \t \t consola .log (e.target); \t \t \t console.log ($ (': enfoque'.) obtener (0)); \t \t \t ......... otro código ..... .... \t \t}); – DotNetter

+0

@DotNetter por favor ponga el código en su respuesta – Andre

Respuesta

4

En jQuery, this se refiere al elemento con el controlador de eventos y event.target, si event es el parámetro a su evento de devolución de llamada manejador será la fuente de la evento, si, por ejemplo, hizo clic en un elemento secundario y el clic burbujeó.

El evento de enfoque se dispara después del evento de desenfoque, por lo que habrá un corto período de tiempo durante el cual ningún elemento tiene foco. Si realmente lo necesita, puede establecer un tiempo de espera corto para ver si otro input tiene foco unos milisegundos después de que el original se vuelva borroso.

+0

Sí, es así. Pero el problema es que la palabra 'this' apunta a mi cuadro de texto pero no al elemento enfocado. 'Evento' uso solo para evitarlo en algunos casos. – DotNetter

6
$('.some_class').change(function (e) { 
console.log(e.target); 
console.log($(':focus').); // just remove the .get(0) 

}); quitar el .get (0), se puede obtener el elemento que está en el foco

+0

y lo que obtengo? el objeto jQuery está vacío – DotNetter

+0

si el elemento onblur, puede obtener el elemento onfocus – Madao

+0

que no puedo entender. La función 'get' solo devuelve un objeto dentro de la colección jQuery. Entonces, si la colección no está vacía, al llamar 'get (0)' me permite obtener el elemento enfocado. Entonces, ¿por qué sugieres que lo elimines? ¿O tal vez estoy equivocado en alguna parte? – DotNetter

Cuestiones relacionadas