`
kongxiantao
  • 浏览: 112857 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

jquery 中的 mouseover ,mouseout 多次触发 解决办法

阅读更多

 

这篇文章分析的不错:http://www.cnblogs.com/shaojun/archive/2011/03/16/1986249.html

 

 

 

//一下三个函数解决mouseover,mouseout多次触发的问题
            function contains(parentNode, childNode) {
                try{
                    if (parentNode.contains) {
                    return parentNode != childNode && parentNode.contains(childNode);
                    } else {
                    return !!(parentNode.compareDocumentPosition(childNode) & 16);
                    }
                }catch(e){}
            }   
           
            function checkHover(e,target){
                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);
                }
            }
           
            function getEvent(e){
                return e||window.event;
            }

 

 

myElement.onmouseover = function (e){ if (checkHover(e, this )){ do someting... } } myElement.onmouseout = function (e){ if (checkHover(e, this )){ do someting... } }
分享到:
评论

相关推荐

    JS中mouseover和mouseout多次触发问题如何解决

    针对标题“JS中mouseover和mouseout多次触发问题如何解决”,主要内容探讨的是在JavaScript中使用jQuery库时,处理mouseover和mouseout事件由于事件冒泡导致的多次触发问题。当用户使用鼠标在页面元素间移动时,这些...

    经过绑定元素时会多次触发mouseover和mouseout事件

    在JavaScript和jQuery中,`mouseover` 和 `mouseout` 事件是常见的用于响应鼠标进入和离开元素的事件。然而,它们在处理嵌套元素时可能会引发一些问题,导致事件被不期望地多次触发。这是因为当鼠标从一个子元素移动...

    鼠标经过子元素触发mouseout,mouseover事件的解决方案

    标题提到的问题是,当鼠标经过子元素时,意外触发了父元素的`mouseout`和`mouseover`事件,从而影响了预期的效果。下面将详细讨论这个问题以及解决方案。 首先,我们需要了解`mouseover`和`mouseout`事件的工作原理...

    jQuery中hover与mouseover和mouseout的区别分析

    举个例子,当一个父元素内嵌套有多个子元素时,鼠标在子元素间移动会引发多次mouseover和mouseout事件,这在多数情况下并不是我们期望的。而hover事件因为使用了mouseenter和mouseleave,所以在这种场景下能更精确地...

    javascript中mouseover、mouseout使用详解

    在ie下有mouseenter 与 mouseleave事件来替代mouseover 和 mouseout。 网上很多说法,这两个事件只有ie支持,其他浏览器不支持。 但是我在最新版本的火狐与谷歌都支持了mouseenter 与 mouseleave!!!!! 另外ie是...

    实例讲解jquery中mouseleave和mouseout的区别

    在这些事件中,mouseover和mouseout是最常使用的,但是它们在某些情况下并不如想象中那样工作。为了解决这些问题,jQuery引入了mouseenter和mouseleave两个新的事件,它们与mouseout事件有很大区别,这一点非常重要...

    Jquery中文帮助文档

    例如,`click()`、`mouseover()`、`mouseout()`等方法用于绑定事件,`$(document).ready()`确保在DOM加载完成后执行指定的代码。 4. **动画效果(Animation)**:`fadeIn()`、`fadeOut()`、`slideToggle()`等方法为...

    jquery 中文文档说明

    同时,jQuery Migrate插件可以帮助开发者解决升级过程中的兼容性问题。 总结,jQuery中文文档详尽地解释了这些概念,从基础到高级,从简单到复杂,逐步引导你成为jQuery的专家。无论你是初学者还是经验丰富的开发者...

    扩展Jquery插件处理mouseover时内部有子元素时发生样式闪烁

    在我们对一个dom添加mouseover和mouseout时,也就是jquery的hover事件,如果该dom有子元素,鼠标移到子元素时会触发mouseout事件,但往往实际情况我们希望在子元素上不触发out事件

    jQuery中文帮助文档(非常酷)

    使用`.on()`方法,可以轻松绑定多种类型的事件,如`click`, `mouseover`, `mouseout`等,并通过传递回调函数来定义事件触发时的行为。同时,`.off()`方法用于解绑事件,保持代码的整洁。 jQuery的动画功能让网页...

    jQuery1.10.3中文文档

    jQuery提供了一致的事件绑定和触发方式,例如`$(selector).click(function(){...})`用于绑定点击事件,`$(selector).on('event', function() {...})`则支持更多类型的事件,如`mouseover`、`mouseout`等。...

    jquery鼠标滑过一次层替代另一个层

    总结来说,这个案例涉及的主要知识点包括:jQuery 库的使用、事件处理(mouseover/mouseout)、DOM 操作(show/hide)、变量状态跟踪以及可选的动画效果实现。通过这些技术,我们可以创建出更互动、更具吸引力的网页...

    jQuery天猫商品分类导航菜单

    其次,`mouseover`和`mouseout`事件是实现鼠标悬停效果的关键。当用户将鼠标移到导航菜单上时,jQuery会触发`mouseover`事件,显示详细的商品分类;当鼠标离开时,`mouseout`事件会被触发,隐藏子菜单。这种动态效果...

    jQuery1.11.3 中文手册.zip

    `click()`, `mouseover()`, `mouseout()`等方法可直接绑定相应事件,而`on()`和`off()`则用于动态绑定和移除事件。事件委托利用`delegate()`或`on()`实现,使得事件处理更加灵活。 4. **动画效果**:jQuery的动画...

    jQuery API 中文手册

    使用`click()`, `mouseover()`, `mouseout()`等方法可以直接绑定相应的事件处理函数,`on()`和`off()`则可以动态添加或移除事件监听器。此外,`trigger()`可用于触发已绑定的事件。 四、动画效果 jQuery的动画功能...

    jQuery中的时间与动画

    - **`mouseover()`和`mouseout()`**:分别在鼠标进入和离开元素时触发。 - **`hover()`**:结合了`mouseover`和`mouseout`事件,可以用来创建悬停效果。 - **事件移除**:使用`unbind()`方法可以移除事件处理函数...

    JavaScript和JQuery的鼠标mouse事件冒泡处理

    不论鼠标指针离开被选元素还是任何子元素,都会触发 mouseout 事件 只有在鼠标指针离开被选元素时,才会触发 mouseleave 事件 我们通过一个案例观察下问题: 给一个嵌套的层级绑定mouseout事件,会发现mouseout事件...

    JavaScript实现的鼠标单击触发和鼠标滑过触发的tab标签页源码

    在这个特定的示例中,我们关注的是`click`事件(鼠标单击)和`mouseover`/`mouseout`事件(鼠标滑过)。 1. 鼠标单击触发(click事件): 当用户点击一个元素时,`click`事件会被触发。在tab切换的场景中,通常...

Global site tag (gtag.js) - Google Analytics