Mam krótki skrypt napisany który działa dobrze na chrome:jQuery/JavaScript - event.target.id na Firefox
function updateSentence(){
$(document).ready(function() {
t = event.target.id;
$("#S"+t).html($("#"+t).val());
});
}
Jednak w przypadku Firefoksa nie jest zdefiniowana. Znalazłem kilka podobnych pytań, które sugerowały, że zdarzenie musi zostać przekazany jako parametr do funkcji:
function updateSentence(event){
$(document).ready(function(event) {
t = event.target.id;
$("#S"+t).html($("#"+t).val());
});
}
Jednak dla mnie to rozwiązanie nie rozwiąże problemu Firefox, i faktycznie łamie jak to działa w Chrome. W Chrome kończy się stwierdzenie, że event.target
nie jest zdefiniowany, gdy są one przekazywane.
Co robię źle?
Po otrzymaniu kilku komentarzy uświadomiłem sobie, że to, w jaki sposób myślałem o jQuery w ogóle, było złe. Nie chciałem, aby $(document).ready
było wywoływane przy każdej aktualizacji zdania. Czyszczenie funkcję z tej wiedzy skończyło się z:
function updateSentence(){
t = event.target.id;
$("#S"+t).html($("#"+t).val());
}
To nadal poprawnie aktualizuje zdanie w Chrome, ale target
nadal niezdefiniowana w Firefoksie. Co mogę zrobić, aby to działało w Firefoksie? Czy nadal robię coś zasadniczo niewłaściwego w jQuery?
Aby odpowiedzieć na pytanie w komentarzach, wydarzenie, którego szukam, jest zdarzeniem onchange
, które wywołało updateSentence()
. Powinno to zostać wywołane, gdy pole wyboru/tekst zostanie zmienione.
(wciąż jestem nowy na jQuery i JavaScript w ogóle, i jestem pewien, że jestem tylko co prosty błąd.)
znalazłem moją odpowiedź. Będę publikować za kilka godzin, kiedy strona mi pozwoli.
Czego oczekujesz od celu? '$ (document) .ready' wysyła samo jQuery jako argument - nie ma elementu docelowego. – pimvdb
Nie sądzę, że działa (dokument) .Już wewnątrz innej funkcji jest dobrym pomysłem. Ma działać raz, na stronie "gotowe". Jeśli zostanie wywołane po tym wydarzeniu, nie będzie działać tak, jak tego chcesz. – lifeIsGood
Używanie "jednak w Firefoksie" sugeruje, że w innej przeglądarce uzyskujesz gdzieś wynik. Naprawdę nie powinieneś. Nie za pomocą tego skryptu. –