微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

扩展Jquery插件处理mouseover时内部有子元素时发生样式闪烁

解决思路如下:
首先,判断事件的当前节点,也就是jquery的currentTarget是否在target的包含中,即下面的扩展$.containsNode。
然后,在调用hover的时候的mouSEOver和mouSEOut事件里判断currentTarget是否在target的包含中,即$.fn.fhover扩展
下面就是相关代码

$.containsNode = function(parentNode,childNode) {
if (parentNode.contains) {
return parentNode != childNode && parentNode.contains(childNode);
} else {
return !!(parentNode.compareDocumentPosition(childNode) & 16);
}
}
$.fn.fhover = function(over,out) {
this.hover(function(e) {
if ($.containsNode(e.target,e.currentTarget)) {
return;
}
over.call(this,e);
},function(e) {
if ($.containsNode(e.target,e.currentTarget)) {
return;
}
out.call(this,e);
});
return this;
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐