1

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

そのため、selectでchangeイベントが発生すると、要素からフォーカスを削除するスクリプトを作成しました。

しかし、まだ1つの小さな問題が残っています。Helloを選択してからもう一度Helloオプションを選択すると、フォーカスが残り、青いハイライトが表示されます。しかし、helloを選択してからworldオプションを選択すると、すべてが機能します。したがって、オプションをクリックしてフォーカスを削除すると、スクリプトが表示されます。

次に、ユーザーがオプションをクリックせずにEnterキーを押すことができることを確認したので、Enterケースを作成しました

しかし、私が幸せになるとすぐに私は問題を見つけました。前のケースとほぼ同じ最後のケースが1つあります(最後のケースです)-選択をクリックすると、もちろんすべてのオプションが表示され、青色で強調表示されたオプションが希望どおりであることがわかります)-しかし今回は、Enterキーを押してそのオプションを選択するのではなく、選択タグをもう一度クリックすることにしました。この場合、オプションにクリックイベントはなく、Enterキーを押すことも、変更イベントもありません。強調表示はそのままです。それを修正する方法はありますか

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

$('#select option').click(function(event) {
    $('#select').blur();
});

$('#select').keydown(function(event) {
    // Enter pressed
    if(event.keyCode == 13) {
        $('#select').blur();
    }
});
4

1 に答える 1

1

悪い習慣ですが、これを試してください

$('#select').mouseout(function(){$(this).blur();})
于 2013-03-05T05:53:42.970 に答える