问题:
我们在使用onmouseout事件的时候,经常会出现诡异现象,达不到自己预期的效果!
比如以下示例:
![](http://blog.51cto.com/attachment/201101/195910902.jpg)
图01
![](http://blog.51cto.com/attachment/201101/195947818.jpg)
图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>
分享到:
相关推荐
javascript onmouseout 解决办法.docx
onmouseout 发现它的触发太敏感,当经过层内文字链时,即触发onmousetout事件,功能不能正常显示,经过一番搜索,整理出来,供大家参考。 1、 代码如下: [removed] function test(obj, e) { if (e.currentTarget) { ...
常用javaScript事件归纳。 常用事件: 1.onclick 鼠标单击事件 通常在下列基本对象中产生: button(按钮对象) checkbox(复选框)或(检查列表框) radio (单选钮) reset buttons(重要按钮) submit ...
* onmouseover 和 onmouseout 事件的使用:这两个事件通常都是配合着使用,表示对一个对象的状态改变的两种最常见情形。 通过本节教学,学生将掌握 Event 对象的属性和方法,并能正确地使用 Event 对象来处理用户的...
* onMouseOut:当鼠标离开某对象范围时触发的事件 * onKeyPress:当键盘上的某个键被按下并且释放时触发的事件 * onKeyDown:当键盘上某个按键被按下时触发的事件 * onKeyUp:当键盘上某个按键被按放开时触发的事件 ...
8.2.5 onmouseout事件 163 8.2.6 ondblclick事件 164 8.2.7 onclick事件 165 8.3 表单事件处理 165 8.3.1 onsubmit事件 165 8.3.2 onreset事件 165 8.3.3 onchange事件 166 8.3.4 onselect事件 166 ...
for循环遍历,将每行都分别绑定onmouseover、onmouseout事件, onmouseover(鼠标经过)- - - 该行类名赋值定义好的背景颜色类名 onmouseout(鼠标离开)- - - 该行类名赋值空 注意:这里不用排他思想,用
这一章包含了在 JavaScript客户端用于激发某些特定动作的事件对象和事件句柄。另外,本章还包括了关于使用事件和事件句柄的常规信息。 关于事件常规信息 定义事件句柄 Navigator 4.0 中的事件 event onAbort onBlur ...
事件 浏览器支持 解说 一般事件 onclick IE3、N2 鼠标点击时触发此事件 ...onmouseout IE4、N3 当鼠标离开某对象范围时触发此事件 onkeypress IE4、N4 当键盘上的某个键被按下并且释放时触发此事件. onk
_event 对象是 JavaScript 中的一个重要概念,它代表事件的状态,例如触发 event 对象的元素、鼠标的位置及状态、按下的键等等。event 对象只在事件发生的过程中才有效。event 的某些属性只对特定的事件有意义。例如...
在这个示例中,我们使用了JavaScript来捕捉onmouseover和onmouseout事件,并更改表格的背景颜色。在IE浏览器中,这个方法可以正常工作,而在Firefox浏览器中,我们可以使用CSS的:hover伪类来实现同样的效果。 这个...
比如,fromElement 和 toElement 属性只对 onmouseover 和 onmouseout 事件有意义。 例子 下面的例子检查鼠标是否在链接上单击,并且,如果shift键被按下,就取消链接的跳转。 <HTML> <HEAD><TITLE&...
JavaScript 试题及答案 本文档提供了 JavaScript 相关试题及答案,涵盖了 JavaScript 的基础知识点,包括函数、...onmouseout 事件将在鼠标移出图片时触发,执行 src=‘s1.jpg’,将图片的 src 属性设置为 s1.jpg。
这里,我们使用了 `onmouseover` 和 `onmouseout` 事件来响应鼠标悬停和离开事件,并使用 Javascript 函数 `mouseOver()` 和 `mouseOut()` 来改变图片的源 URL。 二、计时器 Javascript 中的计时器可以用来实现...
在 JavaScript 中,Event 对象是事件状态的代表,它包含了事件发生的元素、键盘状态、鼠标位置和鼠标按钮状态等信息。一旦事件发生,浏览器的内存中就会生成相应的 Event 对象,如单击一个按钮。Event 对象只在事件...
先给大家讲下什么是事件委托:通俗的讲,事件就是onclick,onmouseover,onmouseout,等就是事件,委托呢,就是让别人来做,这个事件本来是加在某些元素上的,然而你却加到别人身上来做,完成这个事件。 也就是:...
技术要点:事件捕捉和定位 难点:计算 涉及技术 onmouseover:当鼠标指针移动到指定的对象上时发生 onmouseout:鼠标指针移出指定对象时发生 onmousemove:鼠标指针移动时发生 offsetLeft | offsetTop | ...
在上面的代码中,我们使用了 JavaScript 的 onMouseOver 和 onMouseOut 事件处理函数来实现鼠标变换表格背景或者颜色的效果。这些事件处理函数可以被应用于各种 HTML 元素上,以达到不同的交互效果。 在实现响应...
使用onmouseover和onmouseout事件实现不同的效果而且是使用js动态实现,本文有利于巩固你js与css方面的知识,感兴趣的你可以了解下哦,希望本文对你有所帮助