day16-jQuery事件绑定的方式

一、前言

  之前我们学习了dom,有三种绑定方式,今天我们来学习一下,jquery有多少种事件绑定方式。

二、jquery的事件绑定

2.1、直接绑定

$(".c1").click(function(){
           //js代码
})

2.2、bind绑定

//绑定事件
$(".c1").bind("click",function(){
           //js代码
})

//解除事件绑定
$(".c1").unbind("click",function(){ 
           //js代码 
})

2.3、 delegate绑定

//绑定.c1下的a标签 绑定click事件
$(".c1").delegate("a","click",function(){
           //js代码
})

//解除事件绑定
$(".c1").undelegate("a","click",function(){
           //js代码
})

注意:上面所有的绑定方式内部调用的都是on的绑定方式

2.4、on绑定

//绑定click事件
$(".c1").on("click",function(){
       //js代码
})

//解除事件绑定
$(".c1").off("click",function(){
       //js代码
})

三、delegate绑定和其他绑定的区别

3.1、操作的html

<body>
    <input id="t1" type="text"/>
    <input id="a1" type="button" value="添加">

    <ul id="u1">
        <li>1</li>
        <li>2</li>
    </ul>

    <script src="jquery-1.12.4.js"></script>
    <script>
        //添加内容
        $("#a1").click(function(){
            var v = $("#t1").val();
            var temp = "<li>" + v + "</li>";
            $("#u1").append(temp);
        });
       
        //js代码
    
    </script>
</body>

3.2、 其他方式绑定

说明:除delegate绑定之外的方式,这里就举例on的方式绑定,因为on的绑定方式和其他几种是一样的。

$("ul li").on("click",function(){
    var v = $(this).text();
    alert(v);
});

效果:

①点击2的时候弹框:

②点击3的时候,不弹框

这个是为啥呢?这个其实当代码从上到下解释的时候,其实 li  标签  没有绑定事件,其实在内部,当我点击 li 标签的时候才能绑定,并且执行。所以新增的3,其实并没有绑定 onclick 事件。

3.3、delegate绑定事件

说明:找到id=u1的下面的li标签,触发click事件。这种方式又叫: 委托

$("#u1").delegate('li',"click",function(){
    var v = $(this).text();
    alert(v);
})

 效果:

所以,delegate相当于把这件事全部放到  <li> 标签里面了,当你一点的时候,绑定上再执行,就ok了,如果你以后遇到增加标签的,然后既有对标签有操作功能的时候,就用delegate方式绑定事件。比如我们的模态对话框。

四、总结

  1. 绑定事件: $(".c1").click(function(){}),$(".c1").bind("click",function(){}),$(".c1").on("click",function(){}),$(".c1").delegate('a','click',function(){})。
  2. $(".c1").click(function(){}),$(".c1").bind("click",function(){}),$(".c1").delegate('a','click',function(){}) 这三种方式都是基于on绑定的方式实现的。
  3. $(".c1").delegate('a','click',function(){}),绑定事件时,会把事件放到标签里面,点击时候绑定执行,其他的事件则不是。
  4. delegate绑定方式经常用于新增功能,新增的功能也需要绑定事件的情况下使用。

 

posted @ 2018-02-01 19:20  帅丶高高  阅读(157)  评论(0编辑  收藏  举报