如何删除:突然浏览器窗口失去焦点时从元素悬停?

时间:2012-08-15 13:49:10

标签: javascript jquery magic-methods

例如:打开this simple jsfiddle并按照以下方式放置您的窗口:this: 然后将光标放在jsfiddle红色区域上,使其成为:hover(绿色),现在将光标移动到另一个窗口。地区还是绿色的!如何避免它?

2 个答案:

答案 0 :(得分:3)

您必须单击新窗口才能使悬停元素失去焦点。即使您将鼠标悬停在不同的窗口上,jsFiddle窗口仍然具有焦点。在您单击新窗口之前,窗口焦点不会改变。

答案 1 :(得分:0)

我认为你不能明确删除:hover。你可以做的是改变你的CSS以要求一个外部容器有一个类,然后当窗口失去焦点时删除它:

JS

$(window).focus(function () {
    $("#outer").addClass('focusedContainer');
});
$(window).blur(function () {
    $("#outer").removeClass('focusedContainer'); 
});​

CSS

.button{
    background: red;
}
.focusedContainer>.button:hover{
    background: green;
}

小提琴:http://jsfiddle.net/johnkoer/932Km/11/