我有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

1

在完成加载数据之前,它会立即关注第二个下拉列表 .

我做了一些研究,发现这些箭头按钮只能通过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没有这些按钮!非常感谢 .