问题:
我们在使用onmouseout事件的时候,经常会出现诡异现象,达不到自己预期的效果!
比如以下示例:
图01
图02
当鼠标点击"列表"域时如图01,显示所有列表如图02,鼠标离开所有列表域时,又返回图01效果.如果按照平常我们直接插入节点,删除节点的思维的话,不同浏览器将会出现不同的效果,达不到预期的效果!在火狐浏览器中,鼠标移到该节点的子节点中时,也会调用mouseout事件,这就是我们不想遇到的!IE中时通过的!
那有上面解决办法呢?在事件中,有这么一个属性relatedTarget,ie中对应的是toElement(鼠标所在当前节点,指向到下一个鼠标所在节点:这样理解可能有点抽象!直接看下面的代码!)
以下代码我们是在FIRFOX中测试通过的 ,IE中就用toElement试试看
提示:"其中很多问题都是自己可以去理解和解决的,在javascript中我们可以把EVENT该对象打印出来所有的属性,看看里面的属性值,然后理解该属性的作用!会对你有很大帮助的!"
- <!DOCTYPEhtmlPUBLIC"-//W3C//DTDXHTML1.0Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
- <htmlxmlns="http://www.w3.org/1999/xhtml">
- <head>
- <metahttp-equiv="Content-Type"content="text/html;charset=utf-8"/>
- <title>onmouseout问题解决</title>
- <style>
- *{margin:0;padding:0;}
- .tdiv{background:#C90;width:200px;}
- .slist{width:200px;height:200px;background:#0C0;}
- .show{display:block;}
- .hidden{display:none;}
- </style>
- </head>
- <body>
- <divclass="tdiv"onclick="tover(event)">列表</div>
- </body>
- <scripttype="text/javascript">
- <!--
- functiontover(e){
- vardiv=document.getElementsByTagName("div")[0];
- varreval="";
- reval+="<divclass=\"slist\"onmouseout=\"tout(this,event)\">";
- reval+="<ul>";
- reval+="<li>列表01</li>";
- reval+="<li>列表02</li>";
- reval+="</ul>";
- reval+="</div>";
- div.parentNode.innerHTML+=reval;
- //alert(e.cancelable);
- e.preventDefault();
- e.stopPropagation();
- }
- functiontout(obj,e){
- if(e.relatedTarget===e.currentTarget.parentNode){
- obj.parentNode.removeChild(obj);
- }
- }
- -->
- </script>
- </html>
分享到:
相关推荐
这种方法通过自定义 `mouseleave` 事件处理器来解决 `onmouseout` 事件过度触发的问题。其核心思想是在 `onmouseout` 事件触发时检查目标元素与鼠标移入的新元素之间的关系,只有当鼠标移入的元素不是目标元素的后代...
在深入探讨《javascript表单事件汇总》这一主题之前,我们首先需要理解JavaScript作为一种广泛应用于网页开发的脚本语言,如何通过处理各种事件来增强用户体验、实现动态交互效果。本文将详细解析一系列重要的...
onmouseout 发现它的触发太敏感,当经过层内文字链时,即触发onmousetout事件,功能不能正常显示,经过一番搜索,整理出来,供大家参考。 1、 代码如下: [removed] function test(obj, e) { if (e.currentTarget) { ...
在JavaScript中,`onmouseover`和`onmouseout`事件是两个非常常见的用于处理用户交互的事件。它们主要用于响应用户将鼠标指针移到元素上方或移出元素时的行为。这两个事件在网页动态效果和用户界面交互设计中扮演着...
鼠标事件是JS中最常见的一种事件类型,它能帮助开发者捕捉用户的鼠标操作,并据此执行相应的逻辑处理。本文将详细介绍JS中的各类鼠标事件及其应用场景。 #### 二、核心鼠标事件 1. **`onClick`**:当用户点击鼠标...
### JavaScript 下关于 `onmouseout` 与事件冒泡的问题经验小结 #### 一、引言 在前端开发过程中,事件处理是不可或缺的一部分。其中,`onmouseout` 事件和事件冒泡机制尤为关键,它们涉及到用户交互以及页面元素...
- **鼠标事件**:如`onclick`(点击)、`onmousedown`(鼠标按下)、`onmouseup`(鼠标释放)、`onmousemove`(鼠标移动)、`onmouseout`(鼠标离开元素)和`onmouseover`(鼠标进入元素)。 - **Event对象**:...
JavaScript是Web开发中不可或缺的一部分,尤其在处理用户交互时,事件扮演着至关重要的角色。本文将详细介绍JavaScript中的一些常用事件及其应用。 1. `onclick`事件:当用户点击指定的对象,如按钮、复选框、单选...
JavaScript 常用事件命令 JavaScript 是一种广泛应用于 web 开发的编程语言,具有广泛的应用前景。下面将对 JavaScript 常用事件命令进行总结和讲解。 onblur 事件 onblur 事件是在表单元素中,当元素失去焦点时...
JavaScript事件是JavaScript编程中非常重要的一个概念,它涉及到用户与网页交互的响应机制。事件是用户或浏览器执行特定操作时触发的代码执行点。以下是对JavaScript事件大全的详细解释: 1. 鼠标事件: - onClick...
下面是JavaScript触发事件列表,涵盖了常见的事件类型和应用场景: 单击事件(OnClick) 单击事件是用户单击鼠标按键时产生的事件,同时onclick指定的事件处理程序或代码将被调用执行。例如:打开页面" onclick=...
### JavaScript 触发事件列表详解 #### 一、单击事件(onclick) 当用户单击鼠标按键时触发的事件。通常,在HTML元素上定义`onclick`属性,该属性指定一个事件处理程序或一段代码,当点击事件发生时,这段代码将会被...
8. `onmousedown`、`onmousemove`、`onmouseout`、`onmouseover`和`onmouseup`事件:这些是鼠标事件,分别对应于鼠标按键按下、鼠标移动、鼠标离开元素、鼠标移到元素上和鼠标按键释放。它们在创建交互式图形或拖放...
本文将详细介绍JavaScript中常见的事件,并探讨这些事件与不同浏览器版本之间的兼容性问题。 首先,我们来看一些基本的鼠标和键盘事件。`onClick`事件在鼠标点击时触发,适用于大多数对象,如按钮或链接。`...
在网页设计中,`onmouseover` 和 `onmouseout` 是两个非常重要的JavaScript事件,它们用于实现用户交互功能,特别是创建动态效果和提供额外信息。在这个特定的案例中,这两个事件被用来控制一个div元素,使其根据...
常见的事件包括: 1. `onclick` - 鼠标点击元素。 2. `ondblclick` - 鼠标双击元素。 3. `onerror` - 加载资源时出现错误。 4. `onfocus` - 元素获取焦点。 5. `onblur` - 元素失去焦点。 6. `onkeydown` - 按下键盘...
在文档中提到的场景,就是要实现阻止子元素的onmouseout事件触发父元素的onmouseout事件。具体实现方法是通过在父元素绑定的onmouseout事件处理函数中进行判断。这段代码采用jQuery库,使用 $(".target-menu") 来...
JavaScript事件是网页交互的核心,它允许开发者响应用户的动作或页面状态的改变。下面是对JavaScript事件列表的详细解说: 1. **鼠标事件**: - `onclick`:在鼠标单击元素时触发。 - `ondblclick`:当鼠标双击...
同时,`onmouseout`和`onmouseover`事件被用来实现鼠标移入和移出图片时的放大和缩小效果。当用户离开页面时,`onunload`事件被触发,弹出一个提示框向用户告别。 案例2展示了`onresize`事件的运用。这个事件在...