Javascript 当它们具有相同的类名时,如何检测鼠标现在位于子元素而不是其父元素之上
我使用Javascript 当它们具有相同的类名时,如何检测鼠标现在位于子元素而不是其父元素之上,javascript,jquery,Javascript,Jquery,我使用jquery查找当前悬停的元素。我的html如下所示: <div class="parent myclass"> parent <div class="child myclass"> child </div> </div> 这是css: .parent{ width: 100px; height:100px; display:block; background-color:#eee; marg
jquery
查找当前悬停的元素。我的html如下所示:
<div class="parent myclass">
parent
<div class="child myclass">
child
</div>
</div>
这是css
:
.parent{
width: 100px;
height:100px;
display:block;
background-color:#eee;
margin:80px;
}
.child{
width: 70px;
height:70px;
display:block;
background-color:#00f;
}
.hovered{
-webkit-box-shadow: inset 0px 0px 0px 2px #f00;
-moz-box-shadow: inset 0px 0px 0px 2px #f00;
box-shadow: inset 0px 0px 0px 2px #f00;
}
edit2:我只知道这个元素有class
myclass
。我不知道元素名是什么,也不知道它们有什么类
谢谢。您在子元素上有一个
子类,因此纯CSS解决方案是:
.child.myclass:hover {
border: 1px solid black;
}
…或添加悬停的类,但现代浏览器(甚至IE8)确实不需要它:
如果child
类实际上不存在(您添加它只是为了澄清您的问题),我会添加它,无论是在编写HTML时,还是在不可避免的情况下,在页面加载时通过JavaScript添加它。无论哪种方式,我都会使用CSS来实现实际的悬停效果
下面是一个通过JavaScript(和CSS悬停效果)添加该类的示例:
$(“.myclass”).filter(函数(){
返回$(this).parents(“.myclass”).length>0;
}).addClass(“儿童”)代码>
.child.myclass:悬停{
边框:1px纯黑;
}
父母亲
小孩
在子元素上有一个子类,因此纯CSS解决方案是:
.child.myclass:hover {
border: 1px solid black;
}
…或添加悬停的类,但现代浏览器(甚至IE8)确实不需要它:
如果child
类实际上不存在(您添加它只是为了澄清您的问题),我会添加它,无论是在编写HTML时,还是在不可避免的情况下,在页面加载时通过JavaScript添加它。无论哪种方式,我都会使用CSS来实现实际的悬停效果
下面是一个通过JavaScript(和CSS悬停效果)添加该类的示例:
$(“.myclass”).filter(函数(){
返回$(this).parents(“.myclass”).length>0;
}).addClass(“儿童”)代码>
.child.myclass:悬停{
边框:1px纯黑;
}
父母亲
小孩
在子元素上有一个子类,因此纯CSS解决方案是:
.child.myclass:hover {
border: 1px solid black;
}
…或添加悬停的类,但现代浏览器(甚至IE8)确实不需要它:
如果child
类实际上不存在(您添加它只是为了澄清您的问题),我会添加它,无论是在编写HTML时,还是在不可避免的情况下,在页面加载时通过JavaScript添加它。无论哪种方式,我都会使用CSS来实现实际的悬停效果
下面是一个通过JavaScript(和CSS悬停效果)添加该类的示例:
$(“.myclass”).filter(函数(){
返回$(this).parents(“.myclass”).length>0;
}).addClass(“儿童”)代码>
.child.myclass:悬停{
边框:1px纯黑;
}
父母亲
小孩
在子元素上有一个子类,因此纯CSS解决方案是:
.child.myclass:hover {
border: 1px solid black;
}
…或添加悬停的类,但现代浏览器(甚至IE8)确实不需要它:
如果child
类实际上不存在(您添加它只是为了澄清您的问题),我会添加它,无论是在编写HTML时,还是在不可避免的情况下,在页面加载时通过JavaScript添加它。无论哪种方式,我都会使用CSS来实现实际的悬停效果
下面是一个通过JavaScript(和CSS悬停效果)添加该类的示例:
$(“.myclass”).filter(函数(){
返回$(this).parents(“.myclass”).length>0;
}).addClass(“儿童”)代码>
.child.myclass:悬停{
边框:1px纯黑;
}
父母亲
小孩
您可以使用如下所示的方法在鼠标位置找到特定元素:
$('.myclass').mouseover(函数(e){
var elm=document.elementFromPoint(e.pageX,e.pageY);
$(elm.addClass('hovered');
}).mouseout(函数(){
$(this.removeClass('hovered');
});代码>
.parent{
宽度:100px;
高度:100px;
显示:块;
背景色:#eee;
利润率:80px;
}
.孩子{
宽度:70px;
高度:70像素;
显示:块;
背景色:#00f;
}
.盘旋{
-webkit盒阴影:插入0px 0px 0px 2px#f00;
-moz盒阴影:插入0px 0px 0px 2px#f00;
盒影:插入0px 0px 0px 2px#f00;
}
父母亲
小孩
您可以使用如下所示的方法在鼠标位置找到特定元素:
$('.myclass').mouseover(函数(e){
var elm=document.elementFromPoint(e.pageX,e.pageY);
$(elm.addClass('hovered');
}).mouseout(函数(){
$(this.removeClass('hovered');
});代码>
.parent{
宽度:100px;
高度:100px;
显示:块;
背景色:#eee;
利润率:80px;
}
.孩子{
宽度:70px;
高度:70像素;
显示:块;
背景色:#00f;
}
.盘旋{
-webkit盒阴影:插入0px 0px 0px 2px#f00;
-moz盒阴影:插入0px 0px 0px 2px#f00;
盒影:插入0px 0px 0px 2px#f00;
}
父母亲
小孩
您可以使用如下所示的方法在鼠标位置找到特定元素:
$('.myclass').mouseover(函数(e){
var elm=document.elementFromPoint(e.pageX,e.pageY);
$(elm.addClass('hovered');
}).mouseout(函数(){
$(this.removeClass('hovered');
});代码>
.parent{
宽度:100px;
高度:100px;
显示:块;
背景色:#eee;
利润率:80px;
}
.孩子{
宽度:70px;
高度:70像素;
显示:块;
背景色:#00f;
}
.盘旋{
-webkit盒阴影:插入0px 0px 0px 2px#f00;
-moz盒阴影:插入0px 0px 0px 2px#f00;
盒影:插入0px 0px 0px 2px#f00;
}
父母亲
小孩
您可以使用如下所示的方法在鼠标位置找到特定元素:
$('.myclass').mouseover(函数(e){
var elm=document.elementFromPoint(e.pageX,e.pageY);
$(elm.addClass('hovered');
}).mouseout(函数(){
$(this.removeClass('悬停')
:has(selector) $("div:has(p)")
All div elements that have a p element