2017-03-02 49 views
1

我有一个示例代码,当悬停 bug如何盘旋内容,排除一些DIV类

$(document).ready(function() { 
    $("#content").mouseenter(function(e) { 
     if ($(e.currentTarget).children().hasClass(".nav")) { 
      console.log("Outside"); 
     } else { 
      console.log("Inside"); 
     } 
    }).mouseleave(function(e) { 
     console.log("Outside"); 
    }); 
}); 

错误,当我徘徊.nav,结果是内部

回答

1

你不必把..hasClass()

.hasClass("nav") 

或者你可以尝试改变选择的集合选择像$('div')代替:

$("div").mouseenter(function(e) { 
 
    if ($(e.currentTarget).is(".nav")) { 
 
    console.log("Outside", e.currentTarget); 
 
    e.stopPropagation(); 
 
    } else { 
 
    console.log("Inside", e.currentTarget); 
 
    } 
 
}).mouseleave(function(e) { 
 
    console.log("Outside"); 
 
});
#content{width:200px; height:200px; margin:30px auto; border:solid 2px red;} 
 
.nav{width:50px; height:20px; float:right; margin:160px 0 0 0 ; border:solid 2px green;}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div id="content"> 
 
<div class="nav"></div> 
 
</div>

0

我的做法是目标是什么,我们正在努力盘旋和重点关注一下。正如你在代码中看到的那样,选择器会在ul中得到li,然后你可以执行你的操作。

我使用悬停,这是短手为.mouseenter和.mouseleave。我希望它能帮助你。

$(function() { 
 
    $('.nav li').hover(
 
    function(e) { 
 
     console.log('inside'); 
 
    }, 
 
    function(e) { 
 
     console.log('outside'); 
 
    } 
 
); 
 
});
ul{ 
 
border: 2px solid gray; 
 
} 
 
ul li{ 
 
padding: 5px; 
 
font-weight: bold; 
 
font-size: 15px; 
 
border: 1px solid black; 
 
margin: 15px; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<ul class="nav"> 
 
    <li>one</li> 
 
    <li>two</li> 
 
</ul>