防止子元素悬停破坏父元素悬停
Prevent child element hovering from breaking parent hover
假设我有一个父div元素,它有一个img子元素,并且我想在父元素悬停时执行一些代码。
<div class="parent">
<img src="link_to_some_image" />
</div>
这里的问题是,当子img悬停时,父img的"悬停状态"会中断。如何使父元素保持其悬停状态,即使其子元素处于悬停状态?
这里有一个例子jsfiddle,试着在空白处悬停,然后在图像上http://jsfiddle.net/omrf0dxe/
非常感谢!
编辑:img子项就是一个例子,它可能是其他类型的元素,比如div、链接等
Edit2:好的,显然解决方案是在绑定"exit"事件时使用mouseleave而不是mouseout。
您正在侦听事件mouseenter
/mouseout
。
您想要事件mouseenter
/mouseleave
:
此处示例
$(".parent").on("mouseenter mouseleave", function () {
$(this).toggleClass('hovered');
});
作为替代方案,您还可以将pointer-events: none
添加到子img
元素中,以便从元素中基本上删除鼠标事件:
更新示例
.parent > img {
pointer-events: none;
}
不过,根据您想要实现的目标,您甚至可能不需要JS。
只需使用:hover
伪类。
此处示例
.parent {
width:400px;
height:400px;
background:blue;
}
.parent:hover {
background:red;
}
非常基本的解决方案,不确定您是否希望自己的解决方案保持切换状态,但我会用add/remove类来攻击它。
$('.parent').hover(
function(){ $(this).addClass('hovered') },
function(){ $(this).removeClass('hovered') }
)
http://jsfiddle.net/omrf0dxe/7/
相关文章:
- 单击后使CSS悬停元素永久化
- 要在文本框中显示的悬停元素
- 如何在工具提示窗口小部件中获取悬停元素的id
- 鼠标悬停元素在使用量角器时不起作用
- 在不影响布局的情况下降低鼠标悬停元素周围的灵敏度的简单方法是什么
- 如何在 JS/Jquery 中组合多个悬停元素
- 降低非悬停元素的不透明度
- 鼠标悬停元素时未触发的事件
- 获取显示菜单的悬停元素的属性
- 如何在悬停元素时将 JavaScript 链接到以更改元素的图片并显示块第三个元素
- 如何在不悬停元素的情况下使用 javascript 更改鼠标光标
- 如何将CSS应用于除悬停元素之外的其他元素
- 父级的悬停元素
- 计算用户使用jquery或javascript悬停元素的秒数
- 不使用id's,用jquery识别悬停元素
- 如何在Firebug中检查网页的动态悬停元素
- 覆盖悬停元素中的悬停样式
- 获取悬停元素的背景色
- 事件,用于突出显示悬停元素
- Jquery颜色选择器悬停元素