Css IE9未删除:DOM更改上的悬停样式
我试图在弹出框上创建一个具有:hover状态的按钮,当您使用其中一个按钮时,我将从DOM中删除该框并将其保存以供将来交互。问题是,当我在IE9中将其重新连接到DOM时,它没有清除:hover状态,直到下次将其悬停,然后将鼠标移出 显然,这在任何其他浏览器上都不存在,但在此处可以复制:Css IE9未删除:DOM更改上的悬停样式,css,internet-explorer,dom,internet-explorer-9,hover,Css,Internet Explorer,Dom,Internet Explorer 9,Hover,我试图在弹出框上创建一个具有:hover状态的按钮,当您使用其中一个按钮时,我将从DOM中删除该框并将其保存以供将来交互。问题是,当我在IE9中将其重新连接到DOM时,它没有清除:hover状态,直到下次将其悬停,然后将鼠标移出 显然,这在任何其他浏览器上都不存在,但在此处可以复制: 我找不到手动清除css:hover状态的方法,我真的不想每次都因为这个而重建菜单。有什么想法吗?尝试用类和jQuery控制悬停。这似乎对我有用: CSS: jQuery: $(".button").hover(
我找不到手动清除css:hover状态的方法,我真的不想每次都因为这个而重建菜单。有什么想法吗?尝试用类和jQuery控制悬停。这似乎对我有用: CSS: jQuery:
$(".button").hover(
function () {
$(this).addClass("hover");
},
function () {
$(this).removeClass("hover");
}
);
$(".button").click(function(ev){
ev.preventDefault();
$(ev.target).appendTo($(".catch"));
$(this).removeClass("hover");
});
尝试使用类和jQuery控制悬停。这似乎对我有用: CSS: jQuery:
$(".button").hover(
function () {
$(this).addClass("hover");
},
function () {
$(this).removeClass("hover");
}
);
$(".button").click(function(ev){
ev.preventDefault();
$(ev.target).appendTo($(".catch"));
$(this).removeClass("hover");
});
还有一种方法可以解决这个问题。 您可以在将元素从DOM中分离之前隐藏它,但使用不同的事件处理方式。 诸如此类:
// HTML structure: <div id="aaa"> <a id="bbb"> Text </a> </div>
var bbb = document.getElementById('bbb');
var container = document.getElementById('aaa');
bbb.attachEvent("onclick", function() {
bbb.style.display = "none";
window.setTimeout(function() {
container.removeChild(bbb);
bbb.style.display = "";
// Some time later
window.setTimeout(function() {
container.appendChild(bbb);
}, 2000);
}, 1);
});
bbb.style.visibility=隐藏也起作用。还有一种解决方法。 您可以在将元素从DOM中分离之前隐藏它,但使用不同的事件处理方式。 诸如此类:
// HTML structure: <div id="aaa"> <a id="bbb"> Text </a> </div>
var bbb = document.getElementById('bbb');
var container = document.getElementById('aaa');
bbb.attachEvent("onclick", function() {
bbb.style.display = "none";
window.setTimeout(function() {
container.removeChild(bbb);
bbb.style.display = "";
// Some time later
window.setTimeout(function() {
container.appendChild(bbb);
}, 2000);
}, 1);
});
bbb.style.visibility=隐藏也起作用。使用jquery,您可以做一些丑陋的事情,例如:
if($.browser.msie)
$('el').html($(el).html());
要使用jquery取消并附加元素,可以执行以下操作:
if($.browser.msie)
$('el').html($(el).html());
我不太懂如何拆卸和连接该元件。在移动到另一个位置后,按钮应该是黑色的,在那里它没有鼠标悬停,但是应该应用:hover状态?如果您重新附加一个元素,它当然不会悬停。问题是,当我移动它时:悬停状态仍然应用在本例中为黑色,我希望它返回到未悬停状态为灰色,因为鼠标不再悬停按钮。我不太理解它。在移动到另一个位置后,按钮应该是黑色的,在那里它没有鼠标悬停,但是应该应用:hover状态?如果重新附加一个元素,它当然不会悬停。问题是,当我移动它时:悬停状态仍然应用在本例中为黑色,我希望它返回到未悬停状态为灰色,因为鼠标不再悬停在按钮上。谢谢你,尽管我希望javascript的侵入性更小,我玩的类名越少越好,毕竟css psudo类就是为了这个!这似乎是实现这一点的唯一方法,但仍然很遗憾。谢谢你,尽管我希望javascript的侵入性更小,但我玩类名的次数越少越好,毕竟css psudo类就是为了这个!这似乎是唯一的方法,但仍然很遗憾。谢谢,这是一个很好的解决方案,对我来说很有效。我不想因为IE9已经死了,就不得不重新构造CSS+JS。谢谢,这是一个很好的解决方案,对我来说很有效。我不想仅仅因为IE9已经脑死亡就不得不重新构建CSS+JS。