尝试了解元素上的点击事件<select>



当在select元素上注册单击事件处理程序时,我发现浏览器的行为非常不一致。我设置了一个jsfiddle演示。这是我看到的:

  • OS X(10.7 Lion)上的Firefox 12:单击元素时触发事件。下拉列表会短暂打开,不会保持打开状态。键盘操作不会生成点击操作。
  • Linux 上的 Firefox 12 (Ubuntu Lucid):相同
  • OS X 上的 Chome 19:没有鼠标或键盘交互触发单击事件。
  • Linux 上的 Chrome 19:第一次单击鼠标展开选项,随后单击仍然存在的选择或选项,触发单击事件。
  • OS X 上的 Safari 5.1.6:与 Linux 上的 Chrome 类似,第一次点击展开选项,随后点击选项触发点击事件(与 Chrome 不同,Safari 在显示选项时隐藏选择元素)。
  • Android 浏览器(在冰淇淋三明治上):初始点击触发事件。选项在活动结束后保持可见,并且可以单击。单击选项不会触发其他事件。
  • Chrome Beta for Android(冰淇淋三明治):与Android浏览器相同。

如果有人能告诉我或指出我标准,我会很高兴,但我想它并没有那么有用,因为我直接观察到没有人遵循它。我怀疑这是一件不常见的事情,也许侦听更改事件更常见。这是真的吗?听选项的点击怎么样?我无法让它工作,但这可能是一个愚蠢的错误。

(为了提供更多上下文,我正在替换基于Google Closure goog.ui.Select构建的选择元素,因为该组件很好地模仿了一些桌面select渲染,尤其是Chrome的渲染,但无法对您在移动浏览器上看到的扩展选项进行全屏渲染。应用程序以前侦听了该组件的goog.ui.Component.EventType.ACTION事件,该事件在任何地方都没有明确的模拟,所以我只是想找到一个一致的替代品。

以下是 HTML Living Standard,最后更新于 2013 年 7 月

12 日(2013 年 7 月 14 日访问)。此链接将带您直接转到 SELECT 元素。在其他领域,它说任何HTMLElement都应该能够处理onclick事件,并给出了使用javascript添加侦听器的示例。当然,真正的问题是哪些浏览器可靠地支持指定的标准......

网页标准

最新更新