jQuery选择列表选项之后的fire事件已通过onchange事件的其他元素更改

时间:2012-02-14 20:47:27

标签: jquery onchange

我有一个选择列表(#select2),每次更改另一个选择列表(#select1)时,其选项会被更改。

select2的选项始终取决于#select1的值,并且每次更改#select1时都会更改。

是否有一个函数可以绑定到#select2元素,它将在选项列表更改完成后触发(每次受#select1影响)?

我似乎无法向select1元素添加一个onchange处理程序来执行我想要的操作,因为它在select2的选项列表完成之前会触发。

2 个答案:

答案 0 :(得分:7)

您可以使用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.
});

有关trigger()

的更多信息

更新的答案 - 2016年9月

请注意,bind()现已弃用。您应该使用on()代替:

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

答案 1 :(得分:0)

通过javascript进行的更改不会触发事件。您需要在更改它的代码中自行启动它。

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