3

click(function(){//doStuff})イベント jQuery イベント リスナーを要素にマップしようとしまし<option>たが、クリック/フォーカス時に IE が関数を実行しません。

FF と Chrome では、完全に機能します。IE10 では、クリック オプションは機能しません。HTML要素onClick="doFunction()"on.('click',...)イベントもありません。

ここにjsFiddleがあります

<select id="someId" name="someName" size="10" multiple="yes">
<option value="ALL">--All--</option>
<option value="X1">X1</option>
<option value="X2">X2</option>
<option value="X3">X3</option>
<option value="X4">X4</option>
<option value="X5">X5</option>
<option value="X6">X6</option>
<option value="X7">X7</option>
<option value="X8">X8</option>
<option value="X9">X9</option>
</select>


$(document).ready(function () {
    $('#someId option[value="ALL"]').click(function () {
        $('select option').attr('selected', true);
        $('select option[value="ALL"]').eq(0).attr('selected', false);
    });
});
4

1 に答える 1

4

ヴィリアム、残念ながら悪い知らせがあります。IE10 は、実際にはオプションの「クリック」イベントを発生させず、代わりに「選択」に対してのみ発生させます。したがって、選択時に「クリック」イベントハンドラーを配置し、選択した値を追跡してそれに基づいて行動することができます。

デモ

$('#someId').click(function () {
    if ($("#someId option:selected").eq(0).val() === 'ALL') {
        $('select option').prop('selected', true);
        $('select option[value="ALL"]').eq(0).prop('selected', false);
    }
});
于 2013-07-01T14:40:51.563 に答える