ここに<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 はこれを行いません。サファリはまだ試していません。
個人的には、ここで何かが間違っていると思います。クロムですか?jQuery?
編集— もう 1 つ詳細 - Linux で Chrome を実行しています。すぐに Windows を試してみます。(Windowsでも同じように編集してください。)