这是一个
这是一小段JavaScript代码(一个jQuery的“ready”处理程序):
<select>
元素:<select>
<option>Hello</option>
<option>Banana</option>
<option>Balloon</option>
<option>Something</option>
<option>Potato</option>
<option>Cleveland</option>
</select>
这是一小段JavaScript代码(一个jQuery的“ready”处理程序):
$(function() {
function foo() {
var s = $('select').find(':selected');
}
setInterval(foo, 200);
});
该处理程序设置了一个间隔计时器,每200毫秒查找当前选定的<select>
的<option>
,并且不对其进行任何操作。当我在Chrome(13.0.782.112)中运行这个fiddle,并点击<select>
元素,然后尝试选择一个条目时,选择突出显示会一直跳回第一个选定的元素。当然,我可以单击显示的任何<option>
元素,那样就可以工作,然后下次再做同样的事情。
现在,如果我更改计时器处理程序,使其不使用jQuery来查找当前选定的<option>
元素,如下所示:
$(function() {
function foo() {
var select = $('select')[0];
var s = $(select.options[select.selectedIndex]);
}
setInterval(foo, 200);
});
然后我不再看到效果。
Firefox没有这样做。我还没有尝试Safari。
个人认为这里有些东西做错了。是Chrome?jQuery?
编辑 - 还有一个细节 - 我在Linux上运行Chrome。我会立即尝试Windows。(编辑在Windows中相同。)
$('select').change()
来捕获更改事件并在回调中处理,而不是使用间隔? - Jimmy Sawczuk<option>
值。 :) 有没有新的Lorem Ipsum? - Jimmy Sawczuk