我有2个这样的下拉列表:
<select id="first">
<option>M1</option>
<option>M2</option>
</select>
<select id="second">
<option></option>
</select>
第一个修复了数据,我在第二个数据加载数据如下:
$("#first").change(function () {
load2ndListData($("#first").val());
});
通常,如果用户从第一个列表中选择项目,然后单击第二个 . 它有足够的时间让第二个列表根据第一个列表的选定项加载其数据 . 但问题是,如果我在第一个列表中选择项目后使用选项卡箭头按钮 .
Screen shot
在完成加载数据之前,它会立即关注第二个下拉列表 .
我做了一些研究,发现这些箭头按钮只能通过focus()来处理 . 所以我在2个当前列表之间添加1个opacity = 0的列表,如下所示:
<select id="first">
<option>M1</option>
<option>M2</option>
</select>
<select id="middle" style="opacity:0;">
<option></option>
</select>
<select id="second">
<option></option>
</select>
JS:
$("#middle").focus(function () {
document.getElementById("first").focus();
$.when($.ajax(load2ndListData())).then(function () {
document.getElementById("second").focus();
});
});
运行良好但第二个列表的数据加载速度非常慢,因为load2ndListData()被调用了2次 . 一个来自change()事件,另一个来自focus()事件 . 有人可以给我一些建议吗; A;我尝试使用油门,但没有运气,我不能放下更改()事件因为这个网站也运行在其他平台,如Android没有这些按钮!非常感谢 .