• jq:mouseover和mouseout多次触发解决办法


    区别:

    mouseover与mouseenter

      不论鼠标指针穿过被选元素或其子元素,都会触发 mouseover 事件。

      只有在鼠标指针穿过被选元素时,才会触发 mouseenter 事件。

    mouseout与mouseleave

      不论鼠标指针离开被选元素还是任何子元素,都会触发 mouseout 事件。

      只有在鼠标指针离开被选元素时,才会触发 mouseleave 事件。

    在#a没有子元素的情况下,两者在效果上没有区别

    但是#a有子元素的情况下,为了mouseovermouseout触发的此时就可能比mouseenter,mouseleave多

    $("#a").mouseover(function(){ $(this).children().slideDown(1000); }).mouseout(function(){ $(this).children().slideUpt(1000); });

    $("#a").mouseenter(function(){ $(this).children().slideDown(1000); }).mouseleave(function(){ $(this).children().slideUp(1000); });

    而slideUp是个过程需要时间,但是mouseout,mouseover,mouseenter,mouseleave事件都是瞬间发生,多次触发会产生动画重复,这个可以用jq的stop方法阻止动画。

    $("#a").mouseenter(function(){ $(this).children().stop().slideDown(1000); }).mouseleave(function(){ $(this).children().stop().slideUp(1000); });

    jquery stop:

    //语法结构

    $("#div").stop();//停止当前动画,继续下一个动画
    $("#div").stop(true);//清除元素的所有动画
    $("#div").stop(false, true);//让当前动画直接到达末状态 ,继续下一个动画
    $("#div").stop(true, true);//清除元素的所有动画,让当前动画直接到达末状态

  • 相关阅读:
    BZOJ 4358 坑 莫队+线段树 死T
    BZOJ 4321 DP
    两倍问题
    通宵教室
    [编程题]字符串模式匹配
    [编程题]表达式求值
    [编程题]美团骑手包裹区间分组
    1153 Decode Registration Card of PAT
    1154 Vertex Coloring
    1155 Heap Paths
  • 原文地址:https://www.cnblogs.com/chenglj/p/7356440.html
Copyright © 2020-2023  润新知