У меня есть короткий сценарий, написанный, который прекрасно работает на Chrome:JQuery/JavaScript - event.target.id на Firefox
function updateSentence(){
$(document).ready(function() {
t = event.target.id;
$("#S"+t).html($("#"+t).val());
});
}
Однако в Firefox случае не определен. Я нашел несколько подобных вопросов, которые предположили, что событие должно быть передано в качестве параметра функции:
function updateSentence(event){
$(document).ready(function(event) {
t = event.target.id;
$("#S"+t).html($("#"+t).val());
});
}
Тем не менее, для меня это решение не решает проблему Firefox, и это на самом деле ломает, как это работает в Chrome. В Chrome он заканчивает тем, что event.target
не определяется при их передаче.
Что я делаю неправильно?
Получив несколько комментариев, я понял, что, как я думал о jQuery вообще, было неправильно. Я не хотел, чтобы $(document).ready
вызывал каждое обновление предложения. Очистка функции с этим знанием я закончил с:
function updateSentence(){
t = event.target.id;
$("#S"+t).html($("#"+t).val());
}
Это еще правильно обновляет предложение в Chrome, но target
продолжает быть неопределенными в Firefox. Что мне нужно сделать, чтобы заставить это работать в Firefox? И я все еще делаю что-то принципиально неправильное в jQuery?
Кроме того, для ответа на вопрос в комментариях, я ищу событие onchange
, которое вызвало updateSentence()
. Это следует вызывать при изменении поля select/text.
(я еще новичок в jQuery и JavaScript в целом, и я уверен, что я просто сделать простую ошибку.)
Я нашел мой ответ. Я отправлю через пару часов, когда сайт позволит мне это сделать.
Что вы ожидаете от цели? '$ (document) .ready' отправляет сам jQuery в качестве аргумента - нет целевого элемента. – pimvdb
Я не думаю, что запуск (документ) уже внутри другой функции - хорошая идея. Он должен запускаться один раз, на странице «готов». Если вызывается после этого события, он не будет действовать так, как вы этого хотите. – lifeIsGood
Ваше использование «однако в Firefox» предполагает, что в каком-то другом браузере вы получаете какой-то результат. Тебе действительно не должно быть. Не с этим сценарием. –