【发布时间】:2013-09-28 03:27:07
【问题描述】:
IE9 和 IE10(仅限 Win7) 遇到了一个非常奇怪的问题。
如果一个 HTML 元素(button、span、anchor)有一个附加的点击监听器,它会从 DOM 中删除自己(或它的容器)——然后在稍后一些其他事件(例如: reset) 重新添加元素,元素仍然保持在 ':hover' 状态,即使没有鼠标悬停在元素上。
为什么 IE 9 和 IE10 (Win7) 会这样做?此外,是否有一种解决方法,而不诉诸一些 setTimeout 异步调用?
看看这个 JSBin:IE hover/active on remove/add
来自 JSBin 的代码
<div id="outer" style="border: 2px solid green; padding: 10px;">
<div id="container" style="border: 2px solid black; padding: 5px;">
<button id="button">Hide Me</button>
</div>
</div>
<button id="reset" style="margin-top: 20px">Reset</button>
还有 JS:
var outer = document.getElementById('outer');
var container = document.getElementById('container');
var button = document.getElementById('button');
button.addEventListener('click', function() {
outer.removeChild(container);
}, false);
var reset = document.getElementById('reset');
reset.addEventListener('click', function() {
outer.appendChild(container);
}, false);
【问题讨论】:
标签: javascript html dom internet-explorer-9 internet-explorer-10