2012-03-11 19 views
7

voglio sapere all'interno del gestore di eventi onchange, che ha causato il cambiamento (o sfocatura) dell'evento. ho provato ad utilizzare jQuery $(":focus") per questo scopo, maget element, evento di cambiamento causato in javascript

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

fornire l'intera gestore di eventi ... – xandercoded

+0

$ ('. Some_class'). Cambio (function (e) { \t \t \t console log (e.target); \t \t \t console.log ($ (': focus'.) get (0)); \t \t \t ......... altro codice ..... .... \t \t}); – DotNetter

+0

@DotNetter inserire il codice nella risposta – Andre

risposta

4

In jQuery, this riferisce all'elemento con il gestore di eventi e event.target, se event è il parametro all'evento gestore di callback sarà la fonte del evento, se, ad esempio, hai fatto clic su un elemento figlio e il clic è esploso.

L'evento di messa a fuoco viene generato dopo l'evento sfocatura, quindi ci sarà un breve periodo di tempo durante il quale nessun elemento è attivo. Se hai davvero bisogno di questo, potresti impostare un breve timeout per vedere se un altro input ha lo stato attivo un paio di millisecondi dopo che quello originale si è offuscato.

+0

Sì, è così. Ma il problema è che la parola "questo" punta alla mia casella di testo ma non all'elemento focalizzato. 'Evento' lo uso solo per prevenirlo in alcuni casi. – DotNetter

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

}); rimuovere il .get (0), è possibile ottenere l'elemento che è sul fuoco

+0

e cosa ottengo? oggetto jQuery è vuoto – DotNetter

+0

se l'elemento onblur, è possibile ottenere l'elemento onfocus – Madao

+0

non riesco a capire. La funzione 'get' restituisce solo l'oggetto all'interno della raccolta jQuery. Quindi, se la raccolta non è vuota, allora chiamare 'get (0)' mi consente di ottenere elementi focalizzati. Allora perché suggerisci di rimuoverlo? O forse mi sbaglio da qualche parte? – DotNetter

Problemi correlati