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

时间:2012-05-24 22:36:16

标签: javascript dom cross-browser

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

  • OS X上的Firefox 12(10.7 Lion):单击元素时会触发事件。下拉菜单暂时打开,不会保持打开状态。键盘操作不会生成单击操作。
  • Linux上的Firefox 12(Ubuntu Lucid):相同
  • OS X上的Chome 19:没有鼠标或键盘交互触发点击事件。
  • Linux上的Chrome 19:首先鼠标点击展开选项,然后点击仍然存在的选项或选项,触发点击事件。
  • OS X上的Safari 5.1.6:与Linux上的Chrome类似,首先点击展开选项,然后点击选项触发点击事件(与Chrome不同,Safari会在显示选项时隐藏选择元素)。
  • Android浏览器(在冰淇淋三明治上):初始点击触发事件。事件后选项保持可见,可以单击。单击选项不会触发另一个事件。
  • 适用于Android的Chrome测试版(冰淇淋三明治):与Android浏览器相同。

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

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

1 个答案:

答案 0 :(得分:0)

以下是HTML生活标准,最新更新于2013年7月12日(2013年7月14日访问)。此链接将您带到SELECT元素。在其他方面,它表示任何HTMLElement都应该能够处理onclick事件并提供使用javascript添加侦听器的示例。当然,问题实际上是哪些浏览器可靠地支持指定的标准......

HTML Standard