禁用Firefox中弹出的选择元素选项
Disabling Select element options popup in Firefox
我正在尝试实现一个"自定义"组合框选项弹出,以便在列表上的每个选项附近放置一个图标/图像。
我的目标是使这个尽可能不引人注目,使它看起来尽可能接近一个常规的组合,所以,对于Chrome和IE,抓取鼠标和键盘事件的解决方案,导致标准弹出框出现工作良好:
@el.bind 'mousedown keydown keyup click', (e) =>
(...)
e.stopPropagation()
e.preventDefault()
这基本上使控件仍然在那里,看起来是原生的,无论何时用户单击或聚焦它,它都会显示"自定义"列表而不是原生列表。
但是,在firefox中,只要用户点击组合框控件(<选择>),一个弹出显示事件被触发,但我找不到一种方法来取消它之前弹出<选项>显示,掩盖了我的"自定义"选项显示实现。选项>选择>
我能找到的关于这个事件的唯一信息是在Mozilla XUL文档中。
我查看了源代码,似乎无法取消打开下拉菜单的鼠标事件或弹出式显示事件(我甚至不知道为什么要生成该事件)。但是,我认为您可能能够捕获父元素上的鼠标事件并停止其传播。
相关文章:
- WebdriverIO waitForExist()选择元素's选定的选项
- 如何选择元素的第n个子元素
- Angular没有根据模型更新我的选择元素
- jquery使用name from变量按类选择元素
- 如何使用jQuery按数据日期属性选择元素
- 向html选择元素添加选项
- 使用Jquery在相同类型的元素中选择元素
- 他们是如何使用angular/jqLite find()方法按属性名称和值选择元素的?ng conf 2015
- 如何在Angular中清除选择元素中的过滤器
- 使用其中一个元素作为参考点,从Javascript数组中选择元素
- Javascript选择元素到字符串的比较
- Angular始终选择选择元素中的第一个选项
- 使用 jquery .find() 遍历按类和存储属性选择元素
- 通过 id json, jquery 选择元素
- 如何基于另一个已经存在的选择器选择元素
- 禁用多个选择元素中的非“选定”选项,但使用 jquery 的一个除外
- HTML 选择元素的只读等效项
- 在iPad上,如何通过Javascript事件在选择元素上设置focus()而不显示选项
- 单击事件似乎不适用于 IE 中的选择元素
- Angular js,在选择元素上,我想 POST 数据以将其保存在数据库中,然后我想使用 PUT 更新它而无需重新加载