Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript “在多个下拉列表中单击”选项_Javascript_Jquery_Jquery Selectors - Fatal编程技术网

Javascript “在多个下拉列表中单击”选项

Javascript “在多个下拉列表中单击”选项,javascript,jquery,jquery-selectors,Javascript,Jquery,Jquery Selectors,我有一个多选下拉列表,例如: <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&

我有一个多选下拉列表,例如:

<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>
然而,我只想要我点击的选项-选项4。这可能吗


编辑:请注意,当我在更改事件中操作列表时,我无法在单击事件中进行操作。还添加了缺少的多个选项。

如您所知,如果用户在未按下Cntrl键的情况下单击opt 4,则您将只获得Opt4作为所选选项


如果用户在按下Cntrl键的情况下单击opt 4,则将选择所有三个选项。因此,这三个选项都将返回。如果只需要Opt4,则需要添加一个单击事件处理程序。

您可以在每个选项元素的单击处理程序中获得它:

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

编辑:当我在更改事件中操作列表时,我不能在单击事件中进行操作

在这种情况下,您需要使用on来委派事件。试试这个:

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

但是,需要注意的是,选项元素在IE中根本不会引发单击事件,因此上述两项在该浏览器中都不起作用。

是否需要以下帮助

$('#myList').delegate('option', 'click', function (opt) {
  alert('Option ' + opt.value + ' was clicked');
});
真正的答案是:

select.onclick=functione{ console.loge.target.value; };
你想要实现什么?如果要获得“单击”选项,为什么是“多重选择”?是否错过了将“多重属性”添加到“选择”标记?您错过了“选择”中的“多重属性”。除此之外,它应该可以工作。这将为每个选项添加一个事件处理程序。如果在调用此选项后添加了选项,则新选项将无法按预期工作。请查看我的解决方案,了解如何避免此问题。我忘了提到我在更改事件中操纵列表,因此我无法在单击事件中执行此操作。请注意,对于多个选择,您可以取消选中选项,因此您可能需要使用$this.is':selected检查选项是否选中。我知道这是旧的,但是那些正在寻找通用解决方案的人应该被警告,就我所见,这在任何版本的Internet Explorer中都不起作用,包括11。鼠标事件不是从IE.@RichN中的HTML选项元素引发的,这是一个例子。不过,我会在这个答案中添加一个注释,谢谢。
$('#myList').delegate('option', 'click', function (opt) {
  alert('Option ' + opt.value + ' was clicked');
});