zoukankan      html  css  js  c++  java
  • js下关于onmouseout、事件冒泡的问题经验小结

    问题是这样的:一个div元素要触发onmouseout事件,同时这个div内部还有子元素,于是当鼠标移动到该div的子元素上时,onmouseout事件也被触发了。在要做浮动层效果的时候会经常遇到这个问题。
    解决方法一:
    使用jQuery,这个大家都会的:
    复制代码 代码如下:
    <div id="div1">触发显示浮动层</div>
    <div id="div2">
    <ul>
    <li>1</li>
    <li>2</li>
    <li>3</li>
    </ul>
    </div>
    <script>
    $("#div1").mouseover(function(){


    $("#div2").show();


    $("#div2").bind("mouseleave",function(){


    $(this).hide();


    });//此句需要写在触发浮动层的函数内


    };);


    </script>

    解决办法二:
    利用onmousemove事件优先的办法,来防止在子元素中触发onmouseout:
    复制代码 代码如下:
    <div id="div1" onmouseover="document.getElementById('div2').style.display='block';">触发显示浮动层</div>
    <div id="div2" onmousemove='this.style.display="";' onmouseout='this.style.display="none";'>
    <ul>
    <li>1</li>
    <li>2</li>
    <li>3</li>
    </ul>
    </div>

    详细出处参考:http://www.jb51.net/article/25578.htm

  • 相关阅读:
    Java 传递参数时,传递一个变量快还是传递一个实体类?
    13 设计模式
    12 反射
    11.多线程&&并发
    10.输入输出
    9.异常Exception
    7.正则表达式
    5.数组
    6.常见对象
    上传本地项目到Github
  • 原文地址:https://www.cnblogs.com/webqiand/p/4607860.html
Copyright © 2011-2022 走看看