Существует лучшая практика для вызова обработчика изменений JQuery немедленно Afters его определения повторно использовать код и инициализацию GUI, какJQuery .А инициирующее событие слушатель
$("#mySelect").change(function() {
$("#myTextField").val($(this).text());
}).change(); // here the element is immediately triggered, so one does not need a separate code path for the init-case
Без немедленного вызова с использованием .change()
в GUI не отражает начальное значение #mySelect в поле #myTextfield.
С новыми версиями jQuery я хотел бы использовать делегирование и делать то же самое, используя API .on()
.
$("#myForm").on('change', '#mySelect', function() {
$("#myTextField").val($(this).text());
}).change();
Это больше не работает, потому что .change()
не срабатывает на праве элемента, а не с правой event.target, поэтому JQuery не может назвать свой обработчик событий.
Это работает, но уже больше не отражает лучшую практику без отдельного кода инициализации тропы:
$("#myForm").on('change', '#mySelect', function() {
$("#myTextField").val($(this).text());
});
$("#mySelect").change();
Вопроса: Любой хороший способ решить эту проблему, без повторного выбора элемента и вызывает событие?
Вы можете использовать '.trigger ('change')' [trigger] (https://api.jquery.com/trigger/) – xmarston
@xmarston Вызов '.change()' (без аргументов) вызывает '.trigger ('change') ', поэтому они - одно и то же. –
Попробуйте – Realdheeraj