我可能在这个问题上浪费时间,但这里是。 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/