jQuery事件绑定

lan-cheng 2018-02-04 原文

jQuery事件绑定

为一个id为Mydiv的元素添加多个事件

用JavaScript原生添加事件如下:

 

var btn = document.getElementById("Mydiv");
btn.onclick = function(){
	alert(1);
}
btn.onclick = function(){
	alert(2);
}

 

执行上面的代码只会alert 2 

用 jQuery 添加事件如下:

$btn = $(“#Mydiv”)
$btn.click(function(){
  alert(“1”);
})
$btn.click(function(){
  alert(“2”);
})

执行上面的代码会先alert 1 再 alert 2 。再看下面

$(“#Mydiv”).on(“click”,function(){
  alert(1);
}).on(“click”,function(){
  alert(2);
});

执行上面的代码会先alert 1 再 alert 2

以上可以说明 jQuery 中的事件绑定具有叠加性,JavaScript原生的事件绑定则是可覆盖的。

那么 jQuery 中事件绑定方式有几种?

方式一 <bind>:  绑定: $(selector).bind(“事件名”,data,function)

        解绑: $(selector).unbind(“事件名”,handler)

$(“#Mydiv”).bind(“click”,function(){
  alert(“1”);
 }).bind(“click”,function(){
  alert(“2”);
 });

还可以这样:

$(“#Mydiv”).bind({
 click:function() {
  console.log(“疼”)
 },
 mouseenter:function() {
      console.log(“鼠标进入”)
 },
mouseleave:function(){
  console.log(“鼠标离开”)
}
});

方式二 <one>:  $(“选择器”).one(“事件名”,function) 只能触发一次,触发后,自动解绑

$(“#Mydiv”).one(“mouseenter”,function(){
  $(this).css(“background”,”red”)
}).one(“click”,function(){
  $(this).css(“background”,”yellow”)
});

方式三 <delegate> : 绑定: $(“父元素”).delegate(“子元素”,”事件名”,function);

          解绑: $(selector).undelegate(“事件名”,handler)

就是可以为一个或多个子元素绑定事件

$(“ul”).delegate(“li”,”click”,function(e){
$(this).css(“background”,”red”);
})

方式四 <on> : 绑定: $(“选择器”).on(“事件名”,”选择器”,function)

        解绑: $(selector).off(“事件名”,handler)

$(document).on(“click”,”a”,function(){

  $(this).css(“background”,”#000″)
}).on(“click”,”p”,function(){
  $(this).css(“background”,”yellow”)
}).on(“click”,”h1″,function(){
  $(this).css(“background”,”red”)
});

还可以这样:

$(document).on(“click”,function(){
  $(“a”).css(“background”,”#000″)
}).on(“click”,function(){
  $(“p”).css(“background”,”yellow”)
}).on(“click”,function(){
  $(“div”).css(“background”,”red”)
});

不同之处有?

绑定位置 :
.bind() 直接绑在目标元素(子元素)上
.delegate() 绑在父元素上

事件监听的个数:
.bind() 导致事件监听个数增多
.delegate() 始终只有一个监听

未来子元素:

bind() 无法让动态生成的新元素自动获得事件处理函数

.delegate() 即使后来动态生成的新元素也可自动获得父元素上的事件处理函数

 

posted on 2018-02-04 22:28 慕城蓝就 阅读() 评论() 编辑 收藏

 

 
版权声明:本文为lan-cheng原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/lan-cheng/p/8414645.html

jQuery事件绑定的更多相关文章

  1. jQuery事件绑定

     参考 https://www.jb51.net/article/96248.htm   个人理解:bind: […]...

随机推荐

  1. 浅析VIN码(车辆识别号码)-车架号智能识别

    浅析VIN码(车辆识别号码)-车架号智能识别 VIN码也称车辆识别号码(Vehicle Identificat […]...

  2. [30分钟]MSSQL快速入门教程

    1.什么是SQL语句 sql语言:结构化的查询语言。(Structured Query Language),是 […]...

  3. 蚂蚁金服烈元:蚂蚁网络代理演进之路

    2019 年 10 月 27 日,又拍云联合 Apache APISIX 社区举办 API 网关与高性能服务最 […]...

  4. Manjaro字体+wps字体 – hulk190

    Manjaro字体+wps字体 Posted on 2019-09-01 09:58  hulk190  阅读 […]...

  5. Android — Android下的NDK开发(一)

    Android — Android下的NDK开发(一) 1,NDK是什么?为什么要进行NDK开发? […]...

  6. HTML5移动端触摸事件

    一、移动端事件问题 1.click事件300ms延迟问题 2007年第一代iphone发布,移动端Safari […]...

  7. 大数据时代如何快速开发完成三维可视化应用?

    大数据时代如何快速开发完成三维可视化应用?    处在这个大数据时代势必让我们不得不追求高效,高效工作便捷生活 […]...

  8. OpenCV开发笔记(五十五):红胖子8分钟带你深入了解Haar、LBP特征以及级联分类器识别过程(图文并茂+浅显易懂+程序源码)

    若该文为原创文章,未经允许不得转载原博主博客地址:https://blog.csdn.net/qq214979 […]...

展开目录

目录导航