选择jQuery:change事件不';t从AJAX调用中触发
我在页面上使用jQuery,每次选择新选项时都要运行一个函数。该函数隐藏父选择jQuery:change事件不';t从AJAX调用中触发,jquery,onchange,html-select,jquery-chosen,Jquery,Onchange,Html Select,Jquery Chosen,我在页面上使用jQuery,每次选择新选项时都要运行一个函数。该函数隐藏父div中的所有子div,然后仅显示与所选选项相对应的子div HTML: 到目前为止,所有这些都可以正常工作–当所选项目发生更改时,将调用settingsShow(并显示一个警报以确认这一点) 现在,我还有一个AJAX调用,在完成时更改所选选项: $("#settings-select").val("setting1").trigger("liszt:updated"); settingsShow(); 问题是:一旦所选
div
中的所有子div
,然后仅显示与所选选项相对应的子div
HTML:
到目前为止,所有这些都可以正常工作–当所选项目发生更改时,将调用settingsShow
(并显示一个警报以确认这一点)
现在,我还有一个AJAX调用,在完成时更改所选选项:
$("#settings-select").val("setting1").trigger("liszt:updated");
settingsShow();
问题是:一旦所选选项被完成的AJAX调用更改,选择先前选择的选项将不再触发更改事件。例如:
我知道这是Selected的一个问题,因为如果我使用普通的
select
,它可以正常工作(在上面的步骤3中,我会收到一个提示,上面写着“option2”,就像我应该看到的那样)。但正如您所看到的,当AJAX调用更改所选选项时,我正在使用.trigger(“liszt:updated”)
更新select
,所以我不明白为什么这样做不起作用。事实证明,这是selected 0.9.8(当前版本)中的一个合法错误。我更新到(未正式发布),问题自行更正,没有其他更改
var settingsShow = function(){
var showPanel = $("#settings-select").find('option:selected').val();
$("#settings-tabs .tab").hide();
$("#" + showPanel).fadeIn("fast");
alert(showPanel);
}
$(document).ready(function(){
$("#settings-tabs .tab").hide();
$("#settings-select").chosen().change(settingsShow);
});
$("#settings-select").val("setting1").trigger("liszt:updated");
settingsShow();