在多个下拉列表中获取单击选项
我有一个多选下拉列表,例如:
Opt #1 Opt #2 Opt #3 Opt #4
如果我然后选择Opt #4
,那么我如何才能获得Opt #4
而不Opt #2
和Opt #3
? 我知道我可以通过这个获得所有选择的选项:
var selectedOptions = $("#myList option:selected");
但是我只想要点击选项 – Opt #4
。 这可能吗?
编辑:请注意,当我在change
事件中操作列表时,我无法在click
事件中执行此操作。 还添加了多个缺失。
您可以在每个选项元素的单击处理程序中获取它:
$("#myList option").click(function() { var clickedOption = $(this); });
更新
编辑:当我在更改事件中操作列表时,我无法在单击事件中执行此操作。
在这种情况下,您需要使用on
委托事件。 试试这个:
$("#myList").on("click", "option", function() { var clickedOption = $(this); });
然而,有一点需要注意的是, option
元素根本不会在IE中引发click
事件,因此上述任何一个都不会在该浏览器中起作用。
如您所知,如果用户在没有按下Cntrl键的情况下点击了选项#4,那么您将只选择选项#4作为所选选项。
如果用户在按下Cntrl键的情况下单击了选项#4,则将选择所有三个选项。 因此,将返回所有三个选项。 如果您只想要选择#4,那么您需要添加一个click事件处理程序。
像下面这样的东西会帮助你吗?
$('#myList').delegate('option', 'click', function (opt) { alert('Option ' + opt.value + ' was clicked'); });