可以参考这个网站:http://blog.csdn.net/ltx851201/article/details/6800553
问题描述:
当鼠标移入DIV内部的Img或其它元素上时,内部元素的mouseover事件被触发。但是再次将鼠标移动到DIV内部的另一个内部元素时,却会发现首先被触发的是DIV的mouseout事件,紧接着才是当前这个元素的mouseover事件。
网上找了很多东西最后决定有用的放这里了以备学习之用,感兴趣的朋友可以参考下代码如下:
方法一:
$(".target-menu").mouseout(function(e){
evt = window.event || e;
var obj = evt.toElement || evt.relatedTarget;
var pa = this;
if(pa.contains(obj)) return false;
$(this).hide();
});
方法二:
if(typeof(HTMLElement)!="undefined"){ /*下面这个对contains的扩展方法,主要功能是查找obj元素是否在一个指定的元素之中[或者是否直接与指定的元素一致][直白点,比如判断div_a是否在div_b之内] 方法就是一直查找obj的父节点, 如果其某一个父节点与指定的元素一致,则返回true。表明obj被指定的元素所包裹 如果一直obj不存在父节点时还没有找到与指定元素一致的,则返回false,表明obj并不被指定的元素所包裹 */ HTMLElement.prototype.contains=function (obj){ while(obj!=null&&typeof(obj.tagName)!="undefind"){// if(obj==this) return true;//这一句就是确认:obj在指定的元素之内 obj=obj.parentNode;//这边不是很理解:这一句就是查找指定元素的父节点,当前父节点与指定的元素不一致时,继续往上查找 } return false; } } function hideMsgBox(theEvent){//theEvent不是很清楚:event对象,用来获取事件源,可以通过它来获取触发事件的对象 //下面这句就是调用上面的扩展方法了:查找触发当前事件的对象[theEvent.relatedTarget]是否在contentid元素之内; //theEvent.relatedTarget:这个是啥呢。直白点,当你对一个div点击时,这个就等于那个div元素对象 if (document.getElementById("contentid").contains(theEvent.relatedTarget)) { return//不是很理解 }
相关推荐
问题是这样的:一个div元素要触发onmouseout事件,同时这个div内部还有子元素,于是当鼠标移动到该div的子元素上时,onmouseout事件也被触发了。在要做浮动层效果的时候会经常遇到这个问题。 解决方法一: 使用...
另一种解决方案是利用 `onmousemove` 事件的优先级来阻止在子元素中触发 `onmouseout` 事件。 ```html ('div2').style.display='block';">触发显示浮动层 ;" onmouseout="this.style.display='none';"> <li>1 ...
但在一些场景下,我们需要在鼠标从子元素移出到父元素时不触发父元素的onmouseout事件,以避免不必要的响应。 在文档中提到的场景,就是要实现阻止子元素的onmouseout事件触发父元素的onmouseout事件。具体实现方法...
### JavaScript `onmouseout` 解决方案详解 #### 引言 在前端开发中,我们经常需要处理用户与页面元素之间的交互行为。其中一种常见的需求是当用户的鼠标移出某个元素时,执行特定的操作,比如隐藏一个提示框或者...
- onmouseout:鼠标指针离开元素区域时触发。 2. 键盘事件: - onkeypress:用户按下并释放一个键时触发,通常与字符输入有关。 - onkeydown:用户按下键盘上的键时触发。 - onkeyup:用户释放键盘上的键时触发...
- **`onMouseOut`**:当用户的鼠标光标离开某个元素时触发。与`onMouseOver`相反。 - **兼容性**:IE4 | N3 | O3 #### 二、键盘事件 键盘事件用于响应用户的键盘输入行为。 - **`onKeyPress`**:当键盘上的某个键...
为了解决跨浏览器的`mouseover`和`mouseout`事件冒泡问题,开发者们采用了各种方法。例如,可以利用W3C标准中的`relatedTarget`属性来获取与事件相关的元素。`relatedTarget`属性在`mouseover`事件触发时指向鼠标...
这种行为在某些情况下可能会导致意外的触发,特别是当元素内包含其他子元素时,用户在子元素间移动鼠标会导致父元素不断触发`onmouseover`和`onmouseout`事件,这并非总是我们期望的行为。 例如,假设有一个包含子...
与`onmouseover`类似,如果在父元素上绑定`onmouseout`,当鼠标移出父元素或其任何子元素时,事件也会被触发。 然而,这种行为并不总是符合开发者的需求,有时我们只想在鼠标真正离开父元素边界时触发事件,而不是...
onmouseover事件是在鼠标移到元素上时触发的,而onmouseout事件是在鼠标离开元素时触发的。在IE浏览器中,我们可以使用JavaScript来捕捉这些事件,并执行相应的操作。 在Firefox浏览器中,我们可以使用CSS的:hover...
然而,由于`onmouseout`触发条件较为敏感,很容易在经过元素内的子元素时就被触发,从而导致一些预期之外的行为。例如,当鼠标在包含链接文字的层上移动时,鼠标只要接触到链接,就会触发`onmouseout`事件导致层隐藏...
- **`onmouseout`**: 鼠标离开元素时触发。 - **`onmouseover`**: 鼠标进入元素时触发。 - **`onmouseup`**: 用户释放鼠标按钮时触发。 - **`onmousewheel`**: 用户滚动鼠标滚轮时触发。 #### 4. 键盘事件 - **`...
### IE6中的`li:hover`问题及解决方案 #### 背景介绍 早期浏览器的兼容性问题一直是前端开发者面临的一大挑战。特别是在Internet Explorer 6(简称IE6)中,由于其对CSS支持的限制,很多现代网页设计效果都无法正常...
也就是说,移到对象的子对象上,也算onmouseout了。但这往往会达不到我们想要的预期效果。这是由于javascript自身的冒泡特性导致的(即在子元素上触发了事件,并冒泡到了父元素-堆栈后进先出算法)。今天在网上搜了...
本篇文章将探讨如何实现一个简短的兼容IE和Firefox的鼠标经过事件(onmouseover和onmouseout)的解决方案。 首先,让我们了解这两个事件。`onmouseover`事件在鼠标指针进入一个元素时触发,而`onmouseout`事件则在...
本文主要探讨了利用CSS技术实现下拉菜单的实践方法,并针对IE6.0等早期浏览器存在的兼容性问题,提出了解决方案。 **1. CSS技术与下拉菜单** CSS(层叠样式表)是一种用于定义网页元素样式和布局的语言,它可以将...