这是一个<select>
元素:
<select>
<option>Hello</option>
<option>Banana</option>
<option>Balloon</option>
<option>Something</option>
<option>Potato</option>
<option>Cleveland</option>
</select>
这里有一点 JavaScript(一个 jQuery “就绪”处理程序):
$(function() {
function foo() {
var s = $('select').find(':selected');
}
setInterval(foo, 200);
});
处理程序设置一个间隔计时器,每 200 毫秒,找到当前选择<option>
的<select>
,并且什么都不做。当我在 Chrome (13.0.782.112) 中运行小提琴时,我单击<select>
元素,然后尝试选择一个条目,选择突出显示一直跳回第一个选定的元素。当然,我可以单击显示的任何<option>
元素并且有效,然后下次它会执行相同的操作。
现在,如果我更改计时器处理程序,使其不使用 jQuery 来查找当前选定的<option>
元素,如下所示:
$(function() {
function foo() {
var select = $('select')[0];
var s = $(select.options[select.selectedIndex]);
}
setInterval(foo, 200);
});
然后我不再看到效果。
Firefox 不这样做。我还没有尝试过 Safari。
就我个人而言,我认为这里有什么地方做错了。是铬吗?jQuery?
编辑——更多细节——我在 Linux 上运行 Chrome。我将在几秒钟内尝试 Windows。(在 Windows 中编辑相同。)