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     });
  • 相关阅读:
    metasploit 教程之基本参数和扫描
    sql注入学习 sqlliab教程 lesson1 (sqlliab搭建教程)
    metasploit 教程之信息收集
    渗透.
    sqlmap基础入门超详细教程
    网络调试助手 全平台
    python3中的socket
    python3 udp版简单的聊天器
    提交表单外的数据方法
    centos7下端口映射
  • 原文地址:https://www.cnblogs.com/ws3366/p/7126476.html
Copyright © 2011-2022 走看看