选择什么事件来委托<select>到选定的选项>
What event(s) to choose to delegate a handler from <select> to the selected <option>?
当在<select>
控件中选择另一个<option>
时,可以用<select>
触发的处理程序以相当直接的方式处理此事件。但是,由于某些原因,对于我的项目来说,使用委托的<option>
触发处理程序要方便得多。我尝试使用不同的事件来触发和委托所需的处理程序。结果令人不满意:
-
onfocus
,onchange
和onkeyup
处理程序仅在<select>
控件上触发,而不会在嵌套的<option>
上触发。 -
onclick
处理程序根据需要工作并被委托(在选定的<option>
上触发)。然而,使用这个处理程序显然没有意义,因为select
控件中的另一个option
也可以通过键盘选择,而不仅仅是通过鼠标。
我说的对吗?我是否错过了本例中可以使用的任何标准DOM事件?或者我只能使用一种多边形,像jQuery的focusin
和focusout
?
从讨论中可以得出,没有满足指定要求的DOM事件。
我不确定我是否完全理解你的需求,但我会尽量回答。
当你在谈论jQuery时,我有这个解决方案:
$("#my-select").change(function() {
// $(this) refers to the select element
$(this).find("option:selected").each(function() {
// this function is called only once per change
// $(this) refers to the selected option
})
});
实例:
$("#my-select").change(function() {
// $(this) refers to the select element
$("#s_value").text($(this).val());
$("#s_text").text($(this).find("option:selected").text());
$(this).find("option:selected").each(function() {
// this function is called only once per change
// $(this) refers to the selected option
$("#o_value").text($(this).val());
$("#o_text").text($(this).text());
})
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<select id="my-select">
<option value="1">Option 1</option>
<option value="2">Option 2</option>
<option value="3">Option 3</option>
</select>
<br>SELECTED (FROM SELECT) :
<br>Value : <span id="s_value"></span>
<br>Text : <span id="s_text"></span>
<br>
<br>SELECTED (FROM OPTION) :
<br>Value : <span id="o_value"></span>
<br>Text : <span id="o_text"></span>
<br>
<br>
相关文章:
- 无法在Ionic select中预先选择最后一个选项
- 根据select选项元素将表单重定向到不同的URL
- jQuery动态表单显示在select选项上
- 如何将CSS(特别是填充/边距)应用于select下拉菜单的选项或optgroup
- 如何在触发事件后选择select选项
- 当使用select作为标签时,如何使用ng选项禁用angularjs中的选项
- 如何在Javascript中从select标记的一系列选项中构建二维数组
- jQuery:根据select选项中的每页项目进行分页
- Angularjs-设置不带ng选项的select的默认值
- HTML SELECT-使用JavaScript按VALUE更改所选选项
- 需要将select标记选项值传递给ajax函数
- 单击select'时将数组行回显到文本区域中;s选项
- 使用JavaScript删除多个select选项
- 使用select选项转换时间.使用javascript
- 如何在选项select上使用jquery自动完成进行回发
- 为选项select设置多个值,并使用jQuery获取这些值
- AngularJS的默认选项select在IE9中不起作用
- 修改选项(select)元素的值
- Jquery选择器抛出选项(select)错误
- 在AngularJS中使用ng选项和选项select