jQuery中是否有任何函数可以返回true
或false
如果鼠标输入其子元素?
我想看看我能用的东西:
if ( $(this).mouseIsOnChild() ) {
// mouse is on a child element
} else {
// mouse leaved branch of HTML tree
}
courese .mouseIsOnChild()
函数不存在。爱好。
答案 0 :(得分:1)
//track hover state
$('*').hover(function() {
$(this).data('hover', true);
}, function() {
$(this).data('hover', false);
});
//plugin to check whether mouse is on children
$.fn.mouseIsOnChild = function() {
var ret = false;
$(this).children().each(function() {
ret = $(this).data('hover');
return ret ? false : true;
});
return ret;
}
答案 1 :(得分:0)
是。 mouseenter()
和mouseleave()
事件存在。
使用这个我们可以构建一个数据结构来检查鼠标是否在孩子的区域中:
$(function() {
var isIn = false;
$(target).children().mouseenter(function() {isIn = true;});
$(target).children().mouseleave(function() {isIn = false;});
var isMouseIn = function() { return isIn; };
});
现在,如果鼠标在子项内,则函数isMouseIn()
返回true,否则返回false。
如果您想获得幻想,可以将自定义数据附加到target
节点而不是全局变量。我将把它作为锻炼的动机。
答案 2 :(得分:0)