如何将事件处理程序绑定到<选项>
How to bind an event handler to <option>
这是我的代码:
$(".multiple").each(function() {
$(this).bind("mousedown",function() {
alert();
});
});
以下是它所适用的HTML:
<select>
<option value = "textbox">TextBox</option>
<option class = "multiple" value = "multiplechoice">MultipleChoice</option>
<option class = "multiple" value = "dropdown">DropDown</option>
</select>
我希望看到某种警报框,但它似乎不起作用。我该怎么解决这个问题?
我不确定是否可以将事件绑定到option
元素,因为它们是由浏览器绘制的,并且在渲染后属于shadow DOM(我认为)。至少在Chrome 17中,它对我不起作用。
然而,你可以这样做。。。
$('select').change(function() {
alert('Selected is ' + $(this).find('option:selected').text());
});
jsFiddle。
可能是这样的吗?
$('.multiple').change(function(){
alert('something');
});
HTML:
<select class="multiple">
<option value = "textbox">TextBox</option>
<option value = "multiplechoice">MultipleChoice</option>
<option value = "dropdown">DropDown</option>
</select>
不要去那里——凭经验。这不是一个跨浏览器的解决方案。我的建议是,在select的"change"事件上,测试当前选择的选项是否具有"multiple"类,如果是,则运行特定的逻辑。
您可以在select上捕获事件,并通过选项类进行过滤
$('select').change(function() {
var o = $(this).find('option:selected');
if ('multiple' != o.attr('class')) {
return;
}
alert('Clicked: ' + o.text());
});
您也可以使用click()
而不是change()
来获得不会导致更改的点击,但您将获得也会下拉选择的点击,也就是说,如果您的选择是size="1"
。这种方法需要您的事件处理程序对误报进行解释,因此不鼓励使用这种方法。
相关文章:
- 当<选择的选项>重新选择
- 验证`<输入>`在选项卡上
- 渲染<选项值=“;foo”;选择>在服务器上
- Ionic V1.3-标签-带条件的徽章样式<离子选项卡>
- <中的链接;选择>下拉选项
- 给出<选项>标记一个类?API调用不工作
- 在<选择>使用angular ng选项可能使用ng init
- 点击<选择>元素,但不在<选项>
- 使<选择>选项”;点击“;自动地
- Javascript:更改<选择>java脚本中的选项
- 可以't在<选项>
- 添加<td>在选择菜单JQuery中选择选项时
- <选项>单击eventangularjs
- 使第二<选择>如果首先<选择>设置为某个选项
- jQuery在处理<选择><选项>
- 正在从<选择>React中有多个选项
- 如何设置<选项>在用数据绑定填充的选择中='选项:[..]'
- 在<选项>是可行的选择
- jQuery:包含<选项>VALUE</选项>
- 在HTML中选择事件<选项></选项>标签