-1

これが私の問題です:

「Hello」と「World」の 2 つのオプションを持つ選択タグがあります。

html

<select>
<option> Hello </option>
<option> World </option>
</select>

IEでオプションを選択し、それが選択されたオプションになると、select タグの外側の別の場所をクリックするまで、青色の強調表示が残ります。(firefoxではそうではありません)

SO オプションが選択されたときに要素からフォーカスを削除するスクリプトを作成しました。

脚本

$('select').change(function() {
        $(this).blur();

しかし、まだ小さな問題が 1 つあります。Hello を選択してから Hello オプションを取得すると、フォーカスが残り、青いハイライトが表示されます。しかし、hello を選択してから world オプションを選択すると、すべてが機能します。
選択メニューの場合、オプションが選択されたときに変更イベントが発生することを読みました!!!しかし、変更イベントをトリガーするために、オプションが以前に選択されたものとは異なる必要があるのはなぜですか. 私の英語があまり上手ではないことを理解していただければ幸いです

ここに js の例があります 。IE TEST JSFIDDLE EXAMPLEでテストしてください。

4

2 に答える 2

1

同じ値を選択した場合、オプションは実際には変更されていませんよね?

change イベントは、オプションが変更された場合にのみトリガーされます。

于 2013-03-03T09:30:58.330 に答える
0

これを試して:

$(document).ready(function() {
  $('select').mouseout(function(){$(this).blur();})
});

これは一種のハックであり、機能しますが、ユーザーがキーボードで入力しようとしている場合は少し面倒になる可能性があるため、お勧めしません

于 2013-03-03T09:38:13.850 に答える