兼容ie/非ie实现mouseenter/leave,禁止mouseout/over冒泡
来源:互联网 发布:网页界面设计软件 编辑:程序博客网 时间:2024/04/30 02:55
var getEvent = function (e) {
return window.event || e;
}
/*
* 检测鼠标是否属于指定元素区域内(包含本元素)移动触发的事件,用于区分"外围<->内围" 与"内围 <-> 内围"的移动事件
*/
var isNoLoop = function (target, e) {
var contains = function(parentNode, childNode) {
if (parentNode.contains) {
return parentNode != childNode && parentNode.contains(childNode);
} else {
return !!(parentNode.compareDocumentPosition(childNode) & 16);
}
}
if (getEvent(e).type =="mouseover") {
return !contains(target,getEvent(e).relatedTarget||getEvent(e).fromElement) && !((getEvent(e).relatedTarget||getEvent(e).fromElement)===target);
} else {
return !contains(target,getEvent(e).relatedTarget||getEvent(e).toElement) && !((getEvent(e).relatedTarget||getEvent(e).toElement)===target);
}
}
----阻击冒泡示例一---
barDiv.onmouseover = function(e){//移入,需要清除定时隐藏
if (isNoLoop(this, (window.event || e))) {
clearTimeout(chrdNav.prevNaver);
}
}
--------阻击冒泡示例二---
navId.onmouseover = function(e) {//移入显示子菜单
(window.event || e).cancelBubble = true;//即在子元素之间的移动不会触发此事件
- 兼容ie/非ie实现mouseenter/leave,禁止mouseout/over冒泡
- 禁止IE兼容模式
- 禁止IE兼容模式
- 兼容FF/IE阻止冒泡
- stopPropagatio阻止冒泡兼容IE
- mouseover和mouseout多次触发解决方法(兼容ie和firefox)
- mouseover和mouseout多次触发解决方法(兼容ie和firefox)
- 非IE浏览器下的mouseEnter和mouseLeave
- 为非IE浏览器添加mouseenter,mouseleave事件
- 非IE冒泡与捕获
- 非IE冒泡与捕获
- 兼容IE Firefox Opera 的禁止下载
- JS 取消冒泡事件 兼容火狐IE
- js判断回车事件,兼容ie和非ie
- IE和非IE的API事件兼容处理
- 非兼容ie,上传图片demo
- ie 兼容
- IE兼容
- phpcms修改栏目配置中的模板设置-模板应用到子栏目不起作用
- phpcms进入后台内容列表管理时,禁止自动隐藏"内容发布管理"菜单
- 堆和栈的区别
- firefox+ietab某种操作让它总在最前面
- ie的透明浮动层可以穿透,firefox却不能
- 兼容ie/非ie实现mouseenter/leave,禁止mouseout/over冒泡
- ie的的文档模式(ie7)不支持setAttribute(\'style\', \'\')方法
- 奋斗黑马程序员----Java之IO简介
- js兼容的父元素是否包含子元素检测方法
- ie8文档模式的奇怪现象,前面的对象跳跃延伸到行后(只对mouse事件产生回应,click事件无效,大概有3px)
- 5150晶振不起振
- 兼容的获取html元素的当前样式的方法
- Bash功能与使用技巧
- discuz的邮件激活链接错误提示不明确