Событие пожара после того, как параметры списка выбора jQuery были изменены с помощью другого события onchange - PullRequest
3 голосов
/ 15 февраля 2012

У меня есть список выбора (# select2), параметры которого меняются каждый раз, когда изменяется другой список выбора (# select1).

Опции select2 всегда зависят от значения # select1 и меняются каждый раз, когда изменяется # select1.

Есть ли функция, которую я могу привязать к элементу # select2, который будет срабатывать после его списка опцийизменения завершены (каждый раз, когда на него влияет # select1)?

Я не могу добавить обработчик onchange к элементу select1, чтобы делать то, что я хочу, потому что он запускается до завершения списка параметров select2.

Ответы [ 2 ]

7 голосов
/ 15 февраля 2012

Вы можете использовать методы trigger() и bind() для вызова и прослушивания пользовательских событий:

Попробуйте это:

$("#select1").change(function() {
    // update options in #select2
    $("#select2").trigger("updatecomplete");
});

$("#select2").bind("updatecomplete", function() {
    // this will fire when #select1 change event has finished updating the options.
});

Дополнительная информация о триггер ()


ОБНОВЛЕННЫЙ ОТВЕТ - сентябрь 2016

Обратите внимание, что bind() теперь устарела. Вы должны использовать on() вместо:

$("#select2").on("updatecomplete", function() {
    // this will fire when #select1 change event has finished updating the options.
});
0 голосов
/ 15 февраля 2012

Изменения, сделанные через javascript, не запускают события. Вам нужно будет запустить его самостоятельно в коде, который его меняет.

$("#select2").change();
...