使用JQuery当元素处于悬停状态时,我试图链接一些函数。
我通常会使用.hover
事件函数,但在阅读了一些教程后,我读到使用.on
更好,因为您可以使用一个事件处理程序来监视文档中的所有冒泡事件。
然而,当我将两个函数链接在一起时,我遇到了问题:
$("element").on( "hover", function() {
console.log("one");
}, function() {
console.log("two");
});
我希望结果是一两 (使用.hover
时就是这种情况)而是我得两个
任何人都可以解释我做错了什么或这是否是预期的行为以及为什么?
使用.hover(...)
转发:http://jsfiddle.net/gXSdG/
使用.on(hover...)
转发:http://jsfiddle.net/gXSdG/1/
答案 0 :(得分:30)
.on()
只能使用1个函数,因此您必须询问传递的event
以检查事件是什么。试试这个:
$("element").on("hover", function(e) {
if (e.type == "mouseenter") {
console.log("one");
}
else { // mouseleave
console.log("two");
}
});
或者,您可以拆分构成hover()
方法的两个事件 - mouseenter
和mouseleave
:
$("#element").on("mouseenter", function() {
console.log("one");
}).on('mouseleave', function() {
console.log("two");
});
#element {
background-color: black;
height: 100px;
margin: 100px;
width: 100px;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="element"></div>
答案 1 :(得分:2)