美文网首页
事件的绑定

事件的绑定

作者: 你怀中的猫 | 来源:发表于2022-05-04 19:29 被阅读0次

1、行间的绑定

  • <div id="box" onclick="事件处理函数"></div>
  • 特点:方便
  • 缺点:不方便维护,不方便封装

2、DOM对象属性的形式绑定

  • ele.onclick = function(){}
  • 特点:js跟html完全分离,便于封装
  • 缺点:同一个DOM对象,同时间只能绑定一个同事件,如果给这个事件绑定多个事件处理函数,只执行最后一个事件处理函数

3、事件监听

  • ele.addEventListener("事件类型","事件处理函数",bool){}

  • 事件类型: 字符串类型 要加引号
    比如说"onclick"
    没有 on 直接写 click

  • 事件处理函数:函数类型
    匿名函数、命名函数、对象(可以直接触发对象的方法)

  • bool:布尔值(只有true和false)
    可以省略不写,默认为false
    true 此事件会触发事件捕获
    false 此事件会触发事件冒泡

  • 特点:
    1、DOM2级 不会跟DOM0级事件冲突,同时存在两个都执行
    2、DOM2级可以绑定多个事件函数,不会起冲突

4、第二种绑定事件的函数,也叫DOM 0级绑定

 box.onclick = function(){
        console.log(1);
 }

5、第三种绑定事件的方式,也叫DOM 2级绑定

//匿名函数的绑定
 box.addEventListener('click',function(){
        console.log(11);
},false)

//命名函数的绑定 
function add(){
        console.log(111);
}
box.addEventListener('click',add,false)
//命名函数再绑定的时候不要带括号
//只要带上括号,就是函数的调用,直接默认执行
//不带括号,是函数的绑定,只有在被事件触发的时候才执行

6、对象中方法的绑定

 var obj = {
        name : "娜娜",
        age : "20",
        say : function(){
            console.log("帅气哥哥");
        },
        handleEvent : function(){
//在对象中可以通过this来使用对象自身的方法和属性
            this.say();
            console.log(this.name);
        }
    }
//如果想通过事件监听(DOM2级)的形式来触发对象中的方法
//则这个方法就必须在键值对为 handleEvent:function(){}这个方法中被调用
box.addEventListener('click',obj,false);

7、DOM 2级事件可以随时取消

  • 事件移出通过 removeEventListener
  • 写法跟addEventListener类似,也有相同的三个参数
  • 只能移除命名函数
  • 不能移除匿名函数和DOM 0级事件
  • 在事件绑定的时候,推荐使用DOM 2级命名函数的形式来绑定事件
//双击box后 移出 box上的单击事件
  box1.addEventListener('click',function(){
        //先触发双击事件
        //然后移出单击事件
        box.removeEventListener('click',function(){
            console.log("单机事件以及移出");
        })
    },false)

8、jquery 绑定事件

    //jquery 绑定DOM 0级事件
    $('#box').on('click',function(){
        console.log("DOM 0级 单击事件");
    })

    //jquery 绑定DOM 2级事件
    $('#box').click(function(){
        console.log("DOM 2级 单击事件 匿名函数");
    })

    //同样使用 jquery绑定 DOM 2级事件也有命名函数 和匿名函数
    function a(){
        console.log("DOM 2级 单击事件 命名函数");
    }
    $('#box').click(a);

    //绑定一个鼠标双击事件
    $('#box').dblclick(function(){
        console.log("DOM 2级 双击事件");
    })
    //绑定一个鼠标移入事件
    $('#box').mouseover(function(){
        console.log("DOM 2级 鼠标移入事件");
    })

9、jquery DOM 2级 事件的移除

  • jquery 事件移除 使用off("事件类型",方法名)方法
  • 如果写上方法名,就会移除指定的方法 $('#box').off('click',a);
  • 如果不写方法名,会将这个事件类型全部移除,包括DOM 0级 以及 匿名函数 $('#box').off('click');
  • 如果不写方法名,也不写事件类型,移出绑定在DOM上的所有事件,包括DOM 0级事件
    $('#box').off();

10、jQuery的事件绑定

  • 当绑定事件写在按钮外面的时候,事件不生效
  • 因为绑定的时候 还没有生成子元素,按钮被点击后才会生效
  • 一般情况下,给当前不存在的标签是无法绑定点击事件的
  • 标签只有渲染到页面后,我们才能通过代码获取到并绑定点击事件的
  • 在实际的项目中,很多情况下,我们需要在标签被创建前就将事件绑定好
    这个时候我们可以使用事件委托
    事件委托是给其父元素绑定事件
    但是 让这个事件作用在子元素上
 $('#box').on('click','.item',function(){
        /*
            事件委托只能用DOM 0级来写
            第一个参数 :事件类型
            第二个参数 :事件作用的子元素
            第三个参数 : 绑定的事件函数
        */
        console.log($(this));
})


相关文章

  • JS 事件监听、事件委托2018-07-10

    //常规的事件绑定只执行最后绑定的事件 //使用事件监听绑定事件 //可以绑定多个事件 //语法element.a...

  • JS-事件绑定

    一、addEventListener : 事件绑定另外一种绑定事件的方法。优点:可以绑定多个事件,之后绑定的事件...

  • IE的attachEvent

    事件绑定分为传统的事件绑定和现代的事件绑定 传统的事件绑定的一般形式为: 现代的事件绑定分为W3C的addEve...

  • 025 JS事件

    JS事件 ********* 一、事件的两种绑定方式 ******* 1、on事件绑定方式 2、非on事件绑定方式...

  • 事件绑定、事件冒泡与捕获

    一、事件绑定事件绑定又称事件委托,事件代理,可以给同一个div绑定多个事件 非IE: IE: 绑定事件兼容写法:(...

  • JavaScript事件

    事件分类 事件的绑定方法 通过标签绑定事件 通过js获取DOM元素绑定事件 通过addEventListener属...

  • jQuery事件

    一、基础事件 1、绑定事件 bind();参数一:要绑定事件函数的事件名。参数二:要绑定的事件函数(事件函数名),...

  • jquery入门(3)

    4.jQuery中的事件绑定 #4.1.事件绑定 on方法绑定 直接绑定 总结:事件里面的this是原生的this...

  • 2018-10-18

    JS事件 一、事件的两种绑定方式 ******* 1、on事件绑定方式 2、非on事件绑定方式 二、事件参数eve...

  • JS事件——绑定

    在DOM元素中直接绑定; 在JavaScript代码中绑定; 绑定事件监听函数。 事件监听 优点:常规的事件绑定只...

网友评论

      本文标题:事件的绑定

      本文链接:https://www.haomeiwen.com/subject/buabyrtx.html