禁用Firefox中弹出的选择元素选项

Disabling Select element options popup in Firefox

本文关键字:选择 元素 选项 Firefox 禁用      更新时间:2023-09-26

我正在尝试实现一个"自定义"组合框选项弹出,以便在列表上的每个选项附近放置一个图标/图像。

我的目标是使这个尽可能不引人注目,使它看起来尽可能接近一个常规的组合,所以,对于Chrome和IE,抓取鼠标和键盘事件的解决方案,导致标准弹出框出现工作良好:

@el.bind 'mousedown keydown keyup click', (e) =>
(...)
e.stopPropagation()
e.preventDefault()

这基本上使控件仍然在那里,看起来是原生的,无论何时用户单击或聚焦它,它都会显示"自定义"列表而不是原生列表。

但是,在firefox中,只要用户点击组合框控件(<选择>),一个弹出显示事件被触发,但我找不到一种方法来取消它之前弹出<选项>显示,掩盖了我的"自定义"选项显示实现。

我能找到的关于这个事件的唯一信息是在Mozilla XUL文档中。

我查看了源代码,似乎无法取消打开下拉菜单的鼠标事件或弹出式显示事件(我甚至不知道为什么要生成该事件)。但是,我认为您可能能够捕获父元素上的鼠标事件并停止其传播。