zoukankan      html  css  js  c++  java
  • 点击事件在label标签执行2次解决办法

     

    这是前段时间的事,今天有人问我,便想着要记下来,以下叙述不仅针对普通的click事件也适用,对于使用哪种框架也可以。

    事件传递方式有2种:事件捕获和事件冒泡。事件会从父元素传到子元素,再从子元素传到父元素,如果事件绑定发生在父元素传到子元素的过程中,则称为事件捕获传递,如果事件绑定发生在子元素传到父元素的阶段,则称为事件冒泡传递。

    第一种解决办法:

    1:e.stopPropagation;

    一般情况都是使用的这个,节点上处理该事件的处理程序将被调用,事件不会影响其他节点。

    2:e.preventDefault;

    通知浏览器不要执行与事件关联的默认动作。

    $('input').click(function(e){
        console.log('input_click');
        e.stopPropagation();//阻止其继续冒泡
    })

    第二种解决办法:

    用时间戳来解决,我平常多于这个方法,

    因为e.stopPropagation有的时候在繁杂函数或者函数与函数直接有共同的关联会影响其操作元素。

    如下:

    1  var tab = $('#entr_click1,#entr_click2');//获取ID
    2     tab.click(function(){
    3         var index = tab.index(this);
    4         var now = +new Date();
    5         if (now - evTimeStamp < 100) {
    6            //操作事件元素......
    7         }
    8         evTimeStamp = now;
    9     });
  • 相关阅读:
    实现控件的拖拽
    自定义控件——安卓旋转动画
    MD5简单实例
    TextView来实现跑马灯的效果
    Intent的简单使用
    SharedPreferences的封装
    ViewPager+fragment的使用
    安卓定时器
    2020重新出发,MySql基础,MySql视图&索引&存储过程&触发器
    2020重新出发,MySql基础,MySql表数据操作
  • 原文地址:https://www.cnblogs.com/ws3366/p/7126476.html
Copyright © 2011-2022 走看看