Domanda

E 'possibile passare l'elemento alla funzione focusOut in jQuery? Vorrei legare tutte le caselle di testo focusOut evento in una dichiarazione. Così la mia soluzione sarebbe quella di farli tutti la stessa classe e poi fare qualcosa di simile

$(".class-name").focusout( function() {
//do whatever
});

Ma mi piacerebbe ottenere il valore dell'elemento all'interno del focusOut senza dover fare riferimento ad esso per la sua identificazione, quindi è qualcosa di simile a questo possibile?

$(".class-name").focusout( function(this) {
alert( $(this).val() );
});
È stato utile?

Soluzione

Supponendo che si rende conto della natura magica di focusout sopra blur, questo è ciò che si vuole:

$("#the-common-parent-of-all-inputs").focusout( function(e) {
alert( e.target.value );
});

Hai solo bisogno di legare una focusout al genitore comune dei elements.This di ingresso è l'unica ragione per usare focusout.

Non può rendersene conto, ma quando lo fai $(".class-name").focusout sarà solo legarsi ad ogni elemento singolarmente, che sconfigge l'intero scopo di focusout.

Altri suggerimenti

Per qualcosa come focusOut (o qualsiasi altro evento jQuery) si può fare:

$(".class-name").focusout( function() {
   //`this` refers to the object that was focusouted on
});

this fa sempre riferimento all'oggetto l'evento è accaduto il

Hai provato esso? Dovrebbe sicuramente lavorare, ma senza (!) Il "questo" parametro. "Questo" si riferirà automaticamente l'elemento corrente, non è necessario passare alla funzione come parametro. Basta ometterlo.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top