Javascript 更改下拉列表的内容时,它';什么地方开门?
我有一个用一些项目填充的下拉列表。当用户选择其中一个时,我希望下拉列表保持打开状态,并重新填充新项目。然后用户选择其中一个,最后下拉菜单关闭Javascript 更改下拉列表的内容时,它';什么地方开门?,javascript,browser,drop-down-menu,Javascript,Browser,Drop Down Menu,我有一个用一些项目填充的下拉列表。当用户选择其中一个时,我希望下拉列表保持打开状态,并重新填充新项目。然后用户选择其中一个,最后下拉菜单关闭 可以用JavaScript实现吗?如果是这样的话,怎么做?如果不将本机控件替换为。用于科学!我已经创建了一个替代答案来测试这一点。您可以检查是否包含此HTML: 单击打开下拉列表 不要选择这个! 以及以下Javascript: var t = 10; var x = window.setInterval(function() { consol
可以用JavaScript实现吗?如果是这样的话,怎么做?如果不将本机控件替换为。用于科学!我已经创建了一个替代答案来测试这一点。您可以检查是否包含此HTML:
单击打开下拉列表
不要选择这个!
以及以下Javascript:
var t = 10;
var x = window.setInterval(function() {
console.log(--t);
if (t === 0) { act(); }
}, 1000);
function act() {
var select = document.getElementById('y');
var newOption = document.createElement('option');
newOption.innerHTML = "this option will not appear if the select is open while it's added";
select.appendChild(newOption);
}
如果打开下拉列表并保持其打开状态直到计时器过期,您将看到以下行为:
- ✗ Chrome 29:在重新打开+下拉菜单适应新选项的宽度之前,选项不可见李>
- ✗ IE10/9/8:与Chrome 29+相同,它强制折叠打开的下拉列表
- ✓ Firefox 23:添加无需重新打开的选项+调整新选项的宽度
li
元素,因此只需添加一个即可。我认为你没有完全理解我的建议。IE的行为仍然是可以接受的,或者至少对用户来说,它比Chrome的行为更容易混淆。对解决方法有什么建议吗?顺便说一句,我刚刚报告说这是一个Chrome bug。谢谢你的小提琴,它节省了我一些时间。