Bene, ho capito l'intenzione, tuttavia non mi è chiaro il contesto in cui devi applicare questa roba quindi mi è difficile darti una risposta mirata. E' possibile risolvere in vari modi ma bisognerebbe aoppunto capire qual è il motivo per il quale vuoi richiamare la funzione prova() in quel modo.
Teoricamente potresti applicare tale funzione direttamente come callback dell'evento in questione (al posto della funzione anonima che invece hai definito):
In questo caso all'interno della funzione (direttamente richiamata per quell'evento) si ha un contesto riferito all'elemento stesso da cui è scaturito tale evento. In altre parole il this fa riferimento direttamente all'elemento in questione.codice:$('#id_tipo').change(prova); function prova(){ var idElemento = this.id; console.log(idElemento); };
Se invece vuoi richiamare la funzione dall'interno del callback, come stavi cercando di fare, puoi usare la funzione call() in modo da determinare uno specifico context.
In modo simile puoi usare apply() se ti serve passare anche dei parametri alla funzione stessa.codice:$('#id_tipo').change(function(){ prova.call(this); }); function prova(){ var idElemento = this.id; console.log(idElemento); };
Vedi se può bastare quanto indicato tenendo conto che potrebbero esserci anche altri differenti modi per risolvere ma, ripeto, è difficile darti un suggerimento preciso senza conoscere la situazione in cui devi usare questo script nonché l'obiettivo finale che vorresti ottenere di preciso.


Rispondi quotando