2017-03-02 16 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>