Вот элемент <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);
});
Вот jsfiddle для этого вопроса. .
Обработчик устанавливает интервальный таймер, который каждые 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.
Лично я думаю, что что-то делает что-то здесь не так. Это Chrome? JQuery
изменить & mdash; Еще одна деталь - я использую Chrome на Linux. Я попробую Windows через секунду. ( изменить то же самое в Windows.)