返回值:jQuerymouseover(handler(eventObject))
为 JavaScript 的 "mouseover" 事件绑定一个处理函数,或者触发元素上的该事件。(支持事件冒泡)
-
1.0 新增mouseover(handler(eventObject))
handler(eventObject) (Function) 每当事件触发时执行的函数。 -
1.4.3 新增mouseover([eventData], handler(eventObject))
eventData (Object) 可选参数,将要传递给事件处理函数的数据映射。handler(eventObject) (Function) 每当事件触发时执行的函数。 -
1.0 新增mouseover()
带有参数的该方法是 .bind('mouseover', handler)
的快捷方式,不带参数的该方法是 .trigger('mouseover')
的快捷方式。
当鼠标指针移入元素时,就会触发 mouseover
事件。任何 HTML 元素都可以接收该事件。
举例来说,请看下面的HTML:
<div id="outer"> Outer <div id="inner"> Inner </div> </div> <div id="other"> Trigger the handler </div> <div id="log"></div>
该事件可以绑定在任何元素上:
$('#outer').mouseover(function() { $('#log').append('<div>Handler for .mouseover() called.</div>'); });
现在,当鼠标指针移入 Outer
<div>
时,就会向 <div id="log">
中添加信息。我们也可以通过点击其它元素,手动触发另一个元素上的该事件:
$('#other').click(function() { $('#outer').mouseover(); });
在代码执行后,如果你点击 Trigger the handler 将同样会追加上面的消息。
由于事件冒泡,该事件可能会产生诸多问题。例如上例中,当鼠标指针移入 Inner 元素时,会触发该元素上的 mouseover
事件,然后该事件又冒泡到 Outer 元素上。这就导致了不合时机的 mouseover
事件被调用了。更多相关信息,可以参阅 .mouseenter()
,作为一种更好的替代方法。
示例:
当触发 mouseover 和 mouseenter 事件时,显示鼠标移出对象的次数。当鼠标移入绑定 mouseover 事件元素的子元素时,mouseover 事件同样会被触发。但是,只有在绑定 mouseenter 事件的元素上,将鼠标移入时,才会触发该事件。
<!DOCTYPE html>
<html>
<head>
<style>
div.out { width:40%; height:120px; margin:0 15px;
background-color:#D6EDFC; float:left; }
div.in { width:60%; height:60%;
background-color:#FFCC00; margin:10px auto; }
p { line-height:1em; margin:0; padding:0; }
</style>
<script src="jquery.min.js"></script>
</head>
<body>
<div class="out overout">
<span>move your mouse</span>
<div class="in">
</div>
</div>
<div class="out enterleave">
<span>move your mouse</span>
<div class="in">
</div>
</div>
<script>
var i = 0;
$("div.overout").mouseover(function() {
i += 1;
$(this).find("span").text( "mouse over x " + i );
}).mouseout(function(){
$(this).find("span").text("mouse out ");
});
var n = 0;
$("div.enterleave").mouseenter(function() {
n += 1;
$(this).find("span").text( "mouse enter x " + n );
}).mouseleave(function() {
$(this).find("span").text("mouse leave");
});
</script>
</body>
</html>