jquery滑鼠離開(mouseout)時,會處理一個事務,但是怎麼排除滑鼠在子元素時不影響
<div class="a"><div class="a1" style="display:none;"></div></div> jquery中有mouseout离开时 $(".a").hover(function(){ $(this).find(".a1").css("display","block"); }); $(".a").mouseout(function(){ $(this).find(".a1").css("display","none"); });
以上,當滑鼠其子元素時,也相當於離開了當前DIV,怎麼才能避免呢?
可以使用 jQuery 事件 - mouseleave() 方法 來達到這個效果。
定義與用法
當滑鼠指標離開元素時,會發生 mouseleave 事件。
該事件大多時候會與 mouseenter 事件一起使用。
mouseleave() 方法觸發 mouseleave 事件,或規定發生 mouseleave 事件時執行的函式。
註:與 mouseout 事件不同,只有在滑鼠指標離開被選元素時,才會觸發 mouseleave 事件。如果滑鼠指標離開任何子元素,同樣會觸發 mouseout 事件。請看下面例子的示範。
語法
$(selector).mouseleave()
實例
<html> <head> <script type="text/javascript" src="/jquery/jquery.js"></script> <script type="text/javascript"> x=0; y=0; $(document).ready(function(){ $("div.out").mouseout(function(){ $(".out span").text(x+=1); }); $("div.leave").mouseleave(function(){ $(".leave span").text(y+=1); }); }); </script> </head> <body> <p>不论鼠标指针离开被选元素还是任何子元素,都会触发 mouseout 事件。</p> <p>只有在鼠标指针离开被选元素时,才会触发 mouseleave 事件。</p> <div class="out" style="background-color:lightgray;padding:20px;width:40%;float:left"> <h2 style="background-color:white;">被触发的 Mouseout 事件:<span></span></h2> </div> <div class="leave" style="background-color:lightgray;padding:20px;width:40%;float:right"> <h2 style="background-color:white;">被触发的 Mouseleave 事件:<span></span></h2> </div> </body> </html>
上就一個函數的事情有必要這樣麼?程式碼改成如下
$(".a").hover( function(){ $(this).find(".a1").css("display","block"); }, function(){ $(this).find(".a1").css("display","none"); } );
或
$(".a").mouseover(function(){ $(this).find(".a1").css("display","block"); }); $(".a").mouseleave(function(){ $(this).find(".a1").css("display","none"); });
以上是jquery滑鼠離開mouseout時會處理一個交易時怎麼排除滑鼠在子元素時不影響的詳細內容。更多資訊請關注PHP中文網其他相關文章!