Ho un breve script scritto che funziona bene su Chrome:jQuery/Javascript - event.target.id su Firefox
function updateSentence(){
$(document).ready(function() {
t = event.target.id;
$("#S"+t).html($("#"+t).val());
});
}
Tuttavia, nel caso in Firefox non è definito. Ho trovato alcune domande simili che suggerivano che evento deve essere passato come parametro alla funzione:
function updateSentence(event){
$(document).ready(function(event) {
t = event.target.id;
$("#S"+t).html($("#"+t).val());
});
}
Eppure, per me questa soluzione non risolve il problema di Firefox, e si rompe in realtà come funziona in Chrome. In Chrome, si finisce per dire che event.target
non è definito quando questi vengono passati.
Cosa sto sbagliando?
Dopo aver ricevuto alcuni commenti mi sono reso conto che il modo in cui stavo pensando a jQuery in generale era sbagliato. Non volevo che $(document).ready
chiamasse ogni aggiornamento della frase. Ripulire la funzione con questa conoscenza ho finito con:
function updateSentence(){
t = event.target.id;
$("#S"+t).html($("#"+t).val());
}
Questo ancora aggiorna correttamente la frase in Chrome, ma target
continua ad essere non definito in Firefox. Cosa potrei aver bisogno di fare per farlo funzionare in Firefox? E sto ancora facendo qualcosa di fondamentalmente sbagliato in jQuery?
Inoltre, per rispondere a una domanda nei commenti, l'evento che sto cercando è l'evento onchange
che ha attivato updateSentence()
. Questo dovrebbe essere chiamato quando un campo di selezione/testo viene cambiato.
(sto ancora nuovo per jQuery e JavaScript in generale, e sono sicuro che sto solo facendo un semplice errore.)
ho trovato la mia risposta. Pubblicherò tra un paio d'ore quando il sito me lo permetterà.
Cosa ti aspetti che l'obiettivo sia? '$ (document) .ready' invia jQuery stesso come argomento - non c'è un elemento di destinazione. – pimvdb
Non penso che eseguire (document) .ready all'interno di un'altra funzione sia una buona idea. Dovrebbe essere eseguito una volta, a pagina 'pronto'. Se chiamato dopo quell'evento, non funzionerà come tu vuoi. – lifeIsGood
L'uso di "tuttavia in Firefox" suggerisce che, in qualche altro browser, si ottiene un risultato da qualche parte. Davvero non dovresti esserlo. Non con quella sceneggiatura. –