Jquery 在div'上触发警报;老鼠出来了
我在这里测试了一些东西,所以请原谅css规则。我在一个div中有一个ul列表,我试图在div的mouseout上触发一个警报,但是每次我mouseoutul中的li项时,警报都会触发。能告诉我背后的原因吗?我想这是因为冒泡,但我不确定Jquery 在div'上触发警报;老鼠出来了,jquery,Jquery,我在这里测试了一些东西,所以请原谅css规则。我在一个div中有一个ul列表,我试图在div的mouseout上触发一个警报,但是每次我mouseoutul中的li项时,警报都会触发。能告诉我背后的原因吗?我想这是因为冒泡,但我不确定 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <
<!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>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<style>
#box{
cursor:pointer;width:300px;height:500px;background-color:#F1E0BB;
}
ul#myList{
list-style:none;padding-top:20px;
}
ul#myList li{
font-family:Arial;font-size:20px;font-weight:bold;height:40px;cursor:pointer;border:solid 1px #000;
}
</style>
</head>
<body>
<div id="box">
<ul id="myList">
<li>Item 11</li>
<li>Item 12</li>
<li>Item 13</li>
<li>Item 14</li>
<li>Item 15</li>
</ul>
</div>
</body>
</html>
使用此处按钮,离开孩子时不会触发:
$('#box').mouseleave(function(){
alert("ccc");
});
您关于冒泡的假设是正确的,正是那些冒泡的子元素触发了处理程序。从文档中:
mouseleave
事件处理事件冒泡的方式不同于mouseout
。如果在本例中使用了mouseout
,那么当鼠标指针移出内部元素时,将触发处理程序。这通常是不受欢迎的行为。另一方面,mouseleave
事件仅在鼠标离开其绑定到的元素而不是后代时触发其处理程序。因此在本例中,当鼠标离开外部元素而不是内部元素时,将触发处理程序
使用此处按钮,离开孩子时不会触发:
$('#box').mouseleave(function(){
alert("ccc");
});
您关于冒泡的假设是正确的,正是那些冒泡的子元素触发了处理程序。从文档中:
mouseleave
事件处理事件冒泡的方式不同于mouseout
。如果在本例中使用了mouseout
,那么当鼠标指针移出内部元素时,将触发处理程序。这通常是不受欢迎的行为。另一方面,mouseleave
事件仅在鼠标离开其绑定到的元素而不是后代时触发其处理程序。因此在本例中,当鼠标离开外部元素而不是内部元素时,将触发处理程序
朋友你是个天才,非常感谢!!我必须等到12分钟才能将此标记为已回答bcos。你只花了不到一分钟就回答了!不幸的是,根据Quirksmode的说法,Mousenter和mouseleave只受MSIE的支持:@David-jQuery在所有浏览器中都模拟了它们,所以这在任何地方都适用。mate u r a genius,非常感谢!!我必须等到12分钟才能将此标记为已回答bcos。你只花了不到一分钟就回答了!不幸的是,根据Quirksmode的说法,Mousenter和mouseleave只受MSIE支持:@David-jQuery在所有浏览器中都模拟了它们,所以这在任何地方都适用。