您好,登錄后才能下訂單哦!
今天無聊寫了個二級導航欄,發現了一個以前根本沒注意的問題,那就是mouseleave的事件。故記錄在此,菜鳥飄過。
二級導航欄的功能無非就是鼠標至于某標題上時,顯示其若干子標題,離開某標題至于另外一標題時,顯示對應的子標題并隱藏其他的子標題。還有,就是鼠標離開所有的標題或子標題時,應隱藏所有的子標題。
一開始便全用mouseover和mouseout事件處理,但發現鼠標離開所有的標題或子標題時,最后一次顯示出的子標題沒有被隱藏。body代碼如下:
[html] view plaincopy
<ul class="ul_list">
<li class="li_list">main</li>
</ul>
<ul class="ul_list">
<li class="li_list">Autobots</li>
<li class="sub_li">Optimus Prime</li>
<li class="sub_li">Bumble Bee</li>
<li class="sub_li">Ironhide</li>
<li class="sub_li">Jazz</li>
</ul>
<ul class="ul_list">
<li class="li_list">Decepticons</li>
<li class="sub_li">Megatron</li>
<li class="sub_li">Shockwave</li>
<li class="sub_li">Soundwave</li>
<li class="sub_li">Starscream</li>
</ul>
CSS如下:
[css] view plaincopy
.ul_list{
width:200px;
float:left;
text-align:center;
padding:0;
position:relative;}
.li_list{
list-style:none;
text-align:center;
background:#CCC;
height:40px;
line-height:40px;
font-size:18px;
font-family:黑體;
color:#000000;
cursor:pointer;
position:relative;}
.sub_li{
list-style:none;
text-align:center;
background:#CCC;
height:40px;
line-height:40px;
font-size:18px;
font-family:黑體;
color:#000000;
display:none;
cursor:pointer;
position:relative;}
JS如下:
[javascript] view plaincopy
$(document).ready(function(e) {
$(".li_list").mouseover(function(){
$(this).siblings(".sub_li").show("slow");
$(this).parent(".ul_list").siblings(".ul_list").children(".sub_li").hide("slow");
});
$(".ul_list").<span style="color:#ff6666;">mouseout</span>(function(){
$(this).children(".sub_li").hide("slow");
});
$(".sub_li").mouseover(function(){
$(this).css({"border-top":"1px #FFFFFF solid",
"border-bottom":"1px #FFFFFF solid"});
});
$(".sub_li").mouseout(function(){
$(this).css("border", "none");
});
});
試了一些方法也不行,后來把上述第二項的mouseout事件改為mouseleave則可以,查了資料,mouseout是不論鼠標指針離開被選元素或其子元素,都被觸發;而mouseleave是只有在鼠標指針離開被選元素時,才觸發。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。