但是由於javascript的dom事件傳播機制,不論滑鼠指標穿過被選元素或其子元素,都會觸發mouseover 事件,不論滑鼠指標離開被選元素還是任何子元素,都會觸發mouseout 事件。
所有jquery提供了mouseenter和mouseleave事件來終止事件傳播,使事件只發生在選取的元素上。
只有在滑鼠指標穿過被選元素時,才會觸發 mouseenter 事件。
只有在滑鼠指標離開被選元素時,才會觸發 mouseleave 事件。
範例
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>jQuery中的mouseenter和mouseleave事件</title> <style type="text/css"> *{padding:0;margin:0; font-size:12px} ol,ul{list-style:none} .sns-func{ position:relative; margin:0 auto; width:200px; height:20px; line-height:20px; background-color:#999} .sns-func li.func-list{float:left; padding:0 8px;line-height:20px; font-family:"5b8b4f53"} .sns-func li.sns-setting{ border:1px solid #D1D6E2;padding:0 7px; border-bottom:none; background-color:#FFFFFF; position:relative; z-index:100 } .sns-func .sns-setting-box{position:absolute; top:20px; left:0px; width:66px; border:1px solid #CDCDCD; background-color:#FFFFFF; z-index:99;} .sns-func .sns-setting-box li.on a{background-color:#CFDDE3;} .sns-func .sns-setting-box a:link,.sns-func .sns-setting-box a:visited{ display:block; height:17px; color:#555555;text-decoration:none; padding:5px 0 0 7px; line-height:1} .sns-func .sns-setting-box a:hover{background-color:#CFDDE3;color:#555555;text-decoration:none;} </style> <script type="text/javascript" src="h/jquery-1.4.2.min.js"></script> <script type="text/javascript"> $(document).ready(function(){ $("#sel-down-w").mousemove(function(){ $(".sns-setting-box").slideDown().mouseleave(function(){ $(this).slideUp() }) }) }); </script> </head> <body> <div class="sns-func"> <a href="lucky28/help1#" id="sel-down-w">设置</a> <div class="sns-setting-box" id="divSetting" style="display:none"> <ul> <li><a href="profile/baseinfo">个人资料</a></li> <li><a href="privacy/basic">隐私设置</a></li> <li><a href="privacy/dynamicFilter">动态过滤</a></li> <li><a href="privacy/setEmail">邮件提醒</a></li> <li><a href="profile/password">密码修改</a></li> </ul> </div> </div> </body> </html>
相容IE6的mouseenter和mouseleave事件
在IE6下,滑鼠移上所指的內容,會閃來閃去,所以用jQuery裡mouseenter和mouseleave,
額,這語法很怪異,我從來沒見過這樣的。
恩,收集起來,作為參考吧。
$(document).ready(function(){ $(".search-photo-img").mouseenter(function(){ $(this).css("background","url(module/search/templates/default/images/photo-img-onbg.gif)").mouseleave(function(){ $(this).css("background",""); }); }); });
以上是jquery:mouseenter和mouseleave事件的實例代碼分享的詳細內容。更多資訊請關注PHP中文網其他相關文章!