Javascript 如何使用jQuery在鼠标上方找到当前元素?

Javascript 如何使用jQuery在鼠标上方找到当前元素?,javascript,jquery,html,mouseover,mouseout,Javascript,Jquery,Html,Mouseover,Mouseout,如何获取鼠标悬停上当前元素的类名?例如 当鼠标从div移到a时,我想获取div元素的类名。如何使用jQuery获取它?是否需要发生mouseover事件的div的类名? 如果是这种情况,请参考此 HTML <div class="a">aaaaaaaa</div> <div class="b">bbbbbbbbb</div> 我已将鼠标悬停事件用于目标 e、 target提供发生该事件的元素 如果要在离开鼠标后获取div的类名 然后使用“mo

如何获取鼠标悬停上当前元素的类名?例如


当鼠标从div移到a时,我想获取div元素的类名。如何使用jQuery获取它?

是否需要发生mouseover事件的div的类名? 如果是这种情况,请参考此

HTML

<div class="a">aaaaaaaa</div>
<div class="b">bbbbbbbbb</div>

我已将鼠标悬停事件用于目标

e、 target提供发生该事件的元素

如果要在离开鼠标后获取div的类名 然后使用“mouseover”中的“mouseleave”事件,这应该可以:

在样式表中定义类:

.detectable-div{
    border: white solid 1px;
}

.detectable-div:hover{
    border: red solid 1px;
}
然后在js中:

$('div.detectable-div:hover').mouseover(function () {
    $(this) // this is your object
})

大多数人忽略了OP的这一要求:

将鼠标从a移到div上时

这意味着您需要知道您是从特定类型的元素中悬停的,而不仅仅是从任何元素中悬停的。

我创建了一个全局变量,在特定元素的
mouseleave
上变为true,在您的例子中是
a
元素。然后,在悬停函数中,您需要检查它是否为真

这里有一个


编辑:当从
a
元素悬停到
div
上时,更新了带有边缘大小写的小提琴演示,所有这些都取决于您想要的方式。这也可以是一种选择:

»« 再加上一些细节。只有在采用从
a
div
的直接路径后,才会显示为true。(在
a
div
之间的微小空白),如:

  • a
    ->
    div
    TRUE
  • a
    ->
    div
    ->
    中间有空格
    ->
    div
    FALSE
»« 可能撑得住。如果转到
a
div
之间的微小空白处,然后返回到
div
,这也将显示为真。例如:

  • a
    ->
    div
    ->
    中间有空格
    ->
    div
    TRUE

var模式=0;
$(窗口).on(“mousemove”,函数(e){
如果(e.target.className==“d1”){
模式=1;
}否则{
var cc=e.target.className;
如果(抄送!=“d2”&&mode){
变量el=$(“.d1”),
d1={
x:el.offset()左,
y:el.offset().top,
w:标高宽度(),
h:标高高度()
},
c={
x:e.pageX,
y:e.pageY
};

如果(c.x>=d1.x+d1.w&&c.y>=d1.y&&c.y获取鼠标上方元素的位置,然后获取类名

<div id="wrapper">
<a href="#" class="anchorClass">A</a><div class="divClass">DIV</div>
</div>

$('#wrapper').mouseover(function(e) {
    var x = e.clientX, y = e.clientY,
        elementOnMouseOver = document.elementFromPoint(x, y);
        elementClass=$(elementOnMouseOver).attr('class');
    alert(elementClass);
});
来自jQueryAPI

 <div class="className">
      <span class="span">move your mouse</span>
    </div>



<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js"></script>
    <script type="text/javascript">
    $(".className").mouseover(function() {
        var n = $(this).attr("class");
        $(".span").html("");
        $(".span").html("The class :"+n);
      });
   </script>

移动鼠标
$(“.className”).mouseover(函数(){
var n=$(this.attr(“类”);
$(“.span”).html(“”);
$(“.span”).html(“类:”+n);
});

您可以尝试一下:

window.onmouseover=function(e) {
        console.log(e.target.className);
};
这是我的版本:

function handler(ev) {
var target = $(ev.target);
var elId = target.attr('id');
if( target.is(".el") ) {
   alert('The mouse was over'+ elId );
}
}
$(".el").mouseleave(handler);
工作小提琴:
函数处理程序(ev){
var目标=$(ev.target);
var elId=target.attr('id');
如果(目标为(“.el”)){
警报('鼠标在上面'+elId);
}
}
$(“.el”).mouseleave(处理程序);
.el{
宽度:200px;
高度:200px;
保证金:1px;
位置:相对位置;
背景:#ccc;
浮动:左;
}

悬停一个元素并刷新页面,然后将鼠标移开


你能创建一个提琴来详细说明你的问题吗?发布你的html和你目前拥有的东西一种方法,也许不是最好的方法是创建一个在hover指定的样式,然后查找具有该样式的元素style@RobertRozas thank yout这将为您提供
包装器
中的任何元素,而不仅仅是有问题的div。
 <div class="className">
      <span class="span">move your mouse</span>
    </div>



<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js"></script>
    <script type="text/javascript">
    $(".className").mouseover(function() {
        var n = $(this).attr("class");
        $(".span").html("");
        $(".span").html("The class :"+n);
      });
   </script>
window.onmouseover=function(e) {
        console.log(e.target.className);
};
function handler(ev) {
var target = $(ev.target);
var elId = target.attr('id');
if( target.is(".el") ) {
   alert('The mouse was over'+ elId );
}
}
$(".el").mouseleave(handler);