当一个容器,如div,不包含元素时。Onmouseover只执行一次,正常。当这个div包含其他子元素的时候,这个事件就被执行了多次,今天遇到了这个问题,特此记录下,解决方案。
这个是由于onmouseover引起的,主要是因为ul里面包含了子元素,会造出鼠标移动到子元素,比如li上面也会触发ul的onmouseover事件,造成了混乱。解决办法:
1,如果是IE浏览器,用onmouseleave代替。
2,不管什么浏览器,下面这个方法都是牛逼的,不信,你试试。
- ?stateList.onmouseout?=?function(e){????
- ??if(?!e?)?e?=?window.event;????
- ??var?reltg?=?e.relatedTarget???e.relatedTarget?:?e.toElement;????
- ??while(?reltg?&&?reltg?!=?this?)?reltg?=?reltg.parentNode;????
- ??if(?reltg?!=?this?){????
- ??????//?è??é????ˉ??¥??–????onmouseleave??o??????"?¤"?????£???????
- ????stateList.style.display=‘none‘;??
- ?}??
- }??
原文在这里:http://blog.csdn.net/teresa502/article/details/6103458
时间: 2024-10-20 08:02:53