javascript - 修复 Chrome 的选项元素 onclick 事件

标签 javascript html google-chrome dom event-handling

我可能在这个问题上浪费时间,但这里是。 Chrome 和 Opera 不处理选项元素中的事件,而 IE 和 Firefox 则处理。

所以我想知道我是否知道除了在 select 元素中使用 onchange 之外的解决方法,因为我已尝试处理该事件并提取 null 值的错误。

onchange="side_nav(this.getAttibute('id'))"

我使用的代码是简单的 id 更改,除了 chrome 和 opera 中的选项元素之外,它在任何其他东西中都可以正常工作,这就是函数。

 function side_nav(id)
 {
document.getElementById("selectedS").setAttribute("id","");
 id.setAttribute("id","selectedS");
 }

就像我说的,它可以在选项元素中使用,但仅限于 IE 和 FireFox

onclick="side_nav(this)"

该功能在按钮中工作得很好,我怀疑其他所有元素也一样,只是不是我设置使用的那个。

我怀疑我会重写导航面板来解决问题,但我想我会问问其他人的想法。

最佳答案

这就是我认为的答案。写得不好,但用答案解决了问题。

这是对 Chrome 错误报告的回应。 The actual post

首先,经过进一步评估,我必须说,我相信这并不是一个错误或缺陷,而是浏览器处理 select 和 option 元素的方式。正如我所看到的,浏览器将选项元素/标签更多地视为选择元素的属性,而不是单个元素。 select 元素/标签只是 HTML 中的多维数组,而 option 标签成为 select 元素的属性,这就是事件不会触发的原因,也是无法设置选项元素/标签样式的原因。我现在发现这在源代码中很深,并且似乎在四大浏览器之间平均分配。我将放置我一直在使用的基本选择代码,但这不会有任何帮助,因为它只是常态,正如我所说,这不是一个错误,而是程序设计。 感谢您的回复。

关于javascript - 修复 Chrome 的选项元素 onclick 事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23507095/

相关文章:

javascript - 在 javascript ajax 中使用 perl cgi 值

html - SVG 未在最新版本的 Chrome 中显示

javascript - 在 Chrome 应用程序中保存没有保存对话框的文件

html - 第二列中的中心按钮具有灵活的宽度?

javascript - 拖动文本可防止触发 mouseup - javascript - chrome

javascript - 为什么在使用 onKeyPress 时不能更新状态

javascript - 如何判断 Nuxt.js 组件中使用的布局?

javascript - 如何添加一个计数器来显示找到了多少文本匹配项

css - 移动设备上背景图像拉伸(stretch)网站的问题

javascript - render-blocking css - 延迟加载 css 文件