Javascript IE组合框用法,选择时冻结
我用一个组合框从四所学校中选择一所 完成选择后,我将使用jQuery运行一些函数 所需功能之一使用我们的VLE自己的定制API。对我使用的特定API的限制意味着每次调用只能检索100个用户的信息。因此,对于一所1300人的学校,我必须为每个姓氏的首字母打26个电话 根据需要的频率,它工作得足够好。我有一个正在加载的GIF,它会一直保存到信息返回为止 在FireFox中,这项功能可以正常工作,但在InternetExplorer编辑:版本8中,下拉菜单会冻结,直到检索到信息为止 有什么方法可以很容易地纠正这个问题吗?我并不特别喜欢对大部分代码进行彻底的修改——这个特性不会被大量使用Javascript IE组合框用法,选择时冻结,javascript,jquery,combobox,Javascript,Jquery,Combobox,我用一个组合框从四所学校中选择一所 完成选择后,我将使用jQuery运行一些函数 所需功能之一使用我们的VLE自己的定制API。对我使用的特定API的限制意味着每次调用只能检索100个用户的信息。因此,对于一所1300人的学校,我必须为每个姓氏的首字母打26个电话 根据需要的频率,它工作得足够好。我有一个正在加载的GIF,它会一直保存到信息返回为止 在FireFox中,这项功能可以正常工作,但在InternetExplorer编辑:版本8中,下拉菜单会冻结,直到检索到信息为止 有什么方法可以很容
widget.onLoad = function(){
HPAnalysisObject.init();
$('select#house_picker').change( function() {
var val = $(this).val();
val = val.split(",");
var label = val[0];
var house_id = val[1];
HPAnalysisObject.initHPTotals( house_id, label );
} );
}
HPAnalysisObject.initHPTotals = function(house_id, label) {
HPAnalysisObject.id_list = [];
$('div#display').html('<img src="/user/74/168586.gif" alt="LOADING..." />');
for (var i = 1; i <= 26; i++) {
initial = String.fromCharCode(64 + i);
Frog.API.get("users.search", {
"params": {"surname": initial, "group": house_id},
"onSuccess": HPAnalysisObject.addUsers
});
}
HPAnalysisObject.setLabel(label);
HPAnalysisObject.getHPTotals();
};
还有一些附加的函数,但正是这个Frog.API.get调用减慢了一切,它进行了26次ajax调用…:
所以,基本上,我希望在调用之前,我能放置一些东西,允许组合框返回到其未放下的状态,从而显示我的加载GIF
Internet Explorer^^
火狐^^
非常感谢。Javascript代码在允许更新UI之前运行 推迟对initHPTotals的调用,以便Javascript代码在组合框折叠后执行,例如使用setTimeout。10或20毫秒应该可以:
$('select#house_picker').change( function() {
var val = $(this).val();
val = val.split(",");
var label = val[0];
var house_id = val[1];
setTimeout(function() {
HPAnalysisObject.initHPTotals( house_id, label );
}, 10);
} );
Javascript代码在允许更新UI之前运行 推迟对initHPTotals的调用,以便Javascript代码在组合框折叠后执行,例如使用setTimeout。10或20毫秒应该可以:
$('select#house_picker').change( function() {
var val = $(this).val();
val = val.split(",");
var label = val[0];
var house_id = val[1];
setTimeout(function() {
HPAnalysisObject.initHPTotals( house_id, label );
}, 10);
} );
还没有真正测试过这一点,但您可以尝试更改HPAnalysisObject.initHPTotals house_id,label;致: 这应该允许IE逃避更改事件
另外,如果加载数据需要很长时间,那么您可能应该更改下拉列表的行为。如果某个用户出错,您将加载数据,然后再加载另一组。因此,您可以在下拉列表附近添加一个小按钮,然后单击load onclick。还没有真正测试过这一点,但您可以尝试更改HPAnalysisObject.initHPTotals house\u id,label;致: 这应该允许IE逃避更改事件
另外,如果加载数据需要很长时间,那么您可能应该更改下拉列表的行为。如果某个用户出错,您将加载数据,然后再加载另一组。因此,您可以在下拉菜单附近添加一个小按钮,然后单击load onclick。什么是VLE?奇怪的bug,如果移动$'divdisplay'.html;在$'selecthouse\u picker'内。在调用HPAnalysisObject.initHPTotals house\u id、label之前进行更改;虚拟学习环境。它有自己的一套API来访问我们学校中央信息系统中的信息——学生姓名、UPN、班级、表单组等。我现在就来试试。嗨,max,移动代码没有什么区别。干杯。一次显示所有数据有什么限制吗?换句话说,你能不能让它按字母顺序分页,或者干脆在选择房子和进行API调用之间强制选择首字母?它本身并不能解决问题,但至少会否定它。嗨,克里斯-这正是我通常会做的,但问题在于VLE从我们的中央信息系统提取信息的方式:它每次呼叫只能检索多达100个用户的信息。甚么是VLE?奇怪的bug,如果移动$'divdisplay'.html;在$'selecthouse\u picker'内。在调用HPAnalysisObject.initHPTotals house\u id、label之前进行更改;虚拟学习环境。它有自己的一套API来访问我们学校中央信息系统中的信息——学生姓名、UPN、班级、表单组等。我现在就来试试。嗨,max,移动代码没有什么区别。干杯。一次显示所有数据有什么限制吗?换句话说,你能不能让它按字母顺序分页,或者干脆在选择房子和进行API调用之间强制选择首字母?它本身并不能解决问题,但至少会否定它。嗨,克里斯-这正是我通常会做的,但问题在于VLE从我们的中央信息系统提取信息的方式:它每次呼叫只能检索大约100个用户的信息。