9

複数選択ドロップダウンがあります。

<select id="myList" multiple="multiple">  
    <option value="1">Opt #1</option>
    <option value="2" selected="selected">Opt #2</option>
    <option value="3" selected="selected">Opt #3</option>
    <option value="4">Opt #4</option>
</select>

次に を選択した場合、 and ではなくのみをOpt #4取得するにはどうすればよいですか? これにより、選択したすべてのオプションを取得できることがわかっています。Opt #4Opt #2Opt #3

var selectedOptions = $("#myList option:selected");

ただし、クリックしたオプションのみが必要です - Opt #4。これは可能ですか?

change編集:イベント内でリストを操作するので、イベント内ではできないことに注意してくださいclick。また、欠落している複数を追加しました。

4

4 に答える 4

9

各オプション要素のクリック ハンドラーで取得できます。

$("#myList option").click(function() {
    var clickedOption = $(this);
});

アップデート

編集:変更イベント内でリストを操作すると、クリックイベントではできません。

その場合、 を使用してイベントを委任する必要がありますon。これを試して:

$("#myList").on("click", "option", function() {
    var clickedOption = $(this);
});

ただし、option要素はclickIE ではまったくイベントを発生させないため、上記のいずれもそのブラウザーでは機能しないことに注意してください。

于 2012-05-03T12:32:34.763 に答える
1

ご存知のように、ユーザーが Cntrl キーを押さずに opt #4 をクリックすると、選択したオプションとして Opt #4 のみが表示されます。

ユーザーが Cntrl キーを押しながらオプション #4 をクリックすると、3 つのオプションすべてが選択されます。したがって、3 つのオプションすべてが返されます。Opt#4 のみが必要な場合は、クリック イベント ハンドラーを追加する必要があります。

于 2012-05-03T12:32:30.413 に答える
1

次のようなものは役に立ちますか?

$('#myList').delegate('option', 'click', function (opt) {
  alert('Option ' + opt.value + ' was clicked');
});
于 2012-05-03T12:33:23.237 に答える