>>> JQuery 事件处理

一、事件绑定方式      

 1、事件绑定的快捷方式:

  缺点:绑定的事件,无法取消

  1. $("button:eq(0)").dblclick(function(){
  2.  
  3.   alert(123);
  4.  
  5. });

 2、使用on进行事件绑定

  ① 使用on进行单事件绑定

  1. $("button:eq(0)").on("click",function(){
  2.  
  3.   alert(123);
  4.  
  5. });
  6.  
  7. $("button:eq(0)").off("click"); //解绑

  ② 使用on,同时给多个事件绑定同一函数

  1. $("button:eq(0)").on("click dbclick mouseover",function(){
  2.  
  3.   console.log(123);
  4.  
  5. });

  ③ 使用on,同时给多个事件分别绑定不同的函数

  1. $("button:eq(0)").on({
  2.  
  3.   "click":function(){
  4.  
  5.     console.log("click");
  6.  
  7.   },
  8.  
  9.   "mouseover":function(){
  10.  
  11.     console.log("mouseover");
  12.  
  13.   }
  14.  
  15. });

  ④ 使用on,给回调函数传参,要求是对象格式。传递的参数可以在e.data中取到

  1. $("button:eq(0)").on("click",{"name":"zhangsan","age":14},function(e){
  2.  
  3.   console.log(e);
  4.  
  5.   console.log(e.data);
  6.  
  7.   console.log(e.data.name);
  8.  
  9.   console.log(e.data.age);
  10.  
  11.   // console.log(window.event);
  12.  
  13. });

  [事件因子]

  1. $("button:eq(0)").on("click",function(e){
  2.  
  3.   console.log(e);
  4.  
  5. });

二、使用on事件委派      

 1、事件委派:将原来绑定在DOM节点上的事件,改为绑在其父节点甚至根节点上,然后委派给当前节点执行

  1. $("p").on("click".function(){});
  2.  
  3. ↓(事件委派)
  4.  
  5. $(document).on("click","p",function(){});

 2、事件委派的作用:

  ① 将事件直接绑定在根节点上,可以减少事件绑定次数,更加节省资源;

  ② 使用事件委派绑定的事件,当页面新增同类型标签时,新的标签也可以获得绑定的已有事件。

三、 使用off() 取消事件绑定   

  1. $("button:eq(0)").on("click",function(){
  2.  
  3.   alert(1);
  4.  
  5. });
  6.  
  7. function func(){
  8.  
  9.   alert(2);
  10.  
  11. }
  12.  
  13. $("button:eq(0)").on("click",func);
  14.  
  15. $("button:eq(0)").off("click",func); // 只清除绑定了func函数的click事件
  16.  
  17. $("button:eq(0)").off("click"); // 清除所有的click事件
  18.  
  19. $("button:eq(0)").off("click dbclick"); // 同时清除多个事件
  20.  
  21. $(document).off("click","p"); // 清除事件委派
  22.  
  23. $("p").off(); // 清除绑定的所有事件

四、one() 绑定的事件只能执行一次  

  1. $("button:eq(0)").one("click",function(){
  2.  
  3.   alert("只能执行一次");
  4.  
  5. });

五、其他事件函数      

 1、.trigger() 自动触发某个节点绑定的事件

  接受两个参数:

   ① 需要触发的事件类型;

   ② 数组格式:传递给事件回调函数的参数

  注意:

  >>> 事件回调函数的第一个参数,必须是事件对象。因此,我们传递的参数从第二个开始接受;

  >>> 传递的参数,可以使用arguments进行读取。

 2、.triggerHandler():用法与trigger相同

  【triggerHandler 和 trigger 区别】

  ① triggerHandler不能触发HTML事件,例如表单的submit事件;

   trigger可以触发所有事件!

  ② triggerHandler只能触发所有匹配元素中的第一个元素的事件;

   trigger将触发所有匹配元素的事件!

  ③ triggerHandler的返回值,是事件回调函数的返回值。如果事件回调函数没有返回值,则返回Undefined;

   trigger的返回值永远是调用事件的DOM对象。符合JQuery的可链式语法!

 3、hover():接受两个函数,分别表示mouseover() mouseout()两个事件。

  如果只写一个函数,表示mouseover

  1. $("p:eq(0)").hover(function(){
  2.  
  3.   $(this).css("background-color","red");
  4.  
  5. },function(){
  6.  
  7.   $(this).css("background-color","blue");
  8.  
  9. });

 4、toggle()

  ① 不传参数,表示:当前元素如果为显示状态,则隐藏;如果为隐藏状态,则显示;

  ② 传入一个动画执行效果: "ease"   "slow"   "fast"

  1. $("p:eq(0)").toggle("fast");

  ③ 传入一个函数,表示:

   暗藏动画或显示动画,完成后执行的回调函数。

  ④ 接受一个Boolean类型的参数,表示:

   如果传入的是true则显示当前元素;如果传入的是false则隐藏当前元素。

jQuery事件处理了解一下的更多相关文章

  1. [DOM Event Learning] Section 3 jQuery事件处理基础 on(), off()和one()方法使用

    [DOM Event Learning] Section 3 jQuery事件处理基础 on(),off()和one()方法使用   jQuery提供了简单的方法来向选择器(对应页面上的元素)绑定事件 ...

  2. jQuery事件处理(四)

    看了几天,决定整理一下jQuery事件处理的整体设计思路 1.通过add方法给选中的元素注册事件处理程序(通过缓存系统将事件储存到cache,而不是绑定到元素上) a.在存储之前,会为事件处理程序增加 ...

  3. Unit02: jQuery事件处理 、 jQuery动画

    Unit02: jQuery事件处理 . jQuery动画 jQuery实现购物车案例 <!DOCTYPE html> <html> <head> <titl ...

  4. JQuery事件处理的注意事项

    1.jQuery 名称冲突 jQuery 使用 $ 符号作为 jQuery 的简介方式. 某些其他 JavaScript 库中的函数(比如 Prototype)同样使用 $ 符号. jQuery 使用 ...

  5. 02-老马jQuery教程-jQuery事件处理

    1. 绑定简单事件 在DOM中DOM0级绑定事件的方式是直接给事件属性赋值,但是这样有个缺点就是每次指定的事件处理程序会把之前的覆盖掉. jQuery简单绑定事件的方式,可以让我绑定多个事件处理程序跟 ...

  6. jQuery事件处理(七)

    1.自定义事件(用户手动trigger的一般都是自定义事件) trigger: function( event, data, elem, onlyHandlers ) { var i, cur, tm ...

  7. jQuery事件处理(六)

    1.通过一步步调试的的方法观察了一下存放到cache中的事件及其处理程序的数据格式: { events : { // 根据事件类型存放添加到该元素上的所有事件,下面以click为例 click : [ ...

  8. jQuery事件处理(五)

    对原生js不熟悉看jQuery会困难很多.后续需要更多的关注下原生js jQuery封装之后的事件触发,其中一个分支(处理普通事件)是通过:elem.addEventListener( type, e ...

  9. jQuery事件处理(一)

    1.jQuery事件绑定的用法: $( "elem" ).on( events, [selector], [data], handler ); events:事件名称,可以是自定义 ...

随机推荐

  1. Linux 学习笔记_12_文件共享服务_2_FTP应用--vsftpd

    Wu-FTP:古老,配置复杂 Proftp:功能强大 vsftp: 安全,高速,稳定[系统默认的FTP软件] VSFTP服务器配置 启动:/etc/rc.d/init.d/vsftpd start [ ...

  2. python爬虫 - Urllib库及cookie的使用

    http://blog.csdn.net/pipisorry/article/details/47905781 lz提示一点,python3中urllib包括了py2中的urllib+urllib2. ...

  3. Google性能工程师Ilya Grigorik谈HTTP/2

    via:http://www.infoq.com/cn/news/2014/11/http2-develop HTTP/2,也就是超文本传输协议第2版,是下一代HTTP协议.该版本是自1999年HTM ...

  4. linux下ruby使用tcl/tk编程环境设置

    正常情况下最新的ruby都是不带tcl/tk选项编译的,所以我们在运行tcl/tk代码时都会发生找不到tk库的错误.解决办法很简单只要以tcl/tk选项编译ruby即可. 这里以ubuntu 15.0 ...

  5. BI过程简述

    BI流程: 需求分析->维度设计->查询service->ETL倒数据->CDC监听数据库 需求分析:首先确定好的数据来源(多个数据库+excel文件+日志+...),需要的数 ...

  6. android的ndk开发简介-android学习之旅(93)

    环境搭建 1.安装ndk 2.安装cygwin (android是基于linux的Framework,运行的本地库是.SO,而不是.dll库,大部分都实在windows下开发,如果是linux就没这个 ...

  7. TCP的基本概念三次握手,四次挥手

    TCP的特性 TCP提供一种面向连接的.可靠的字节流服务 在一个TCP连接中,仅有两方进行彼此通信.广播和多播不能用于TCP TCP使用校验和,确认和重传机制来保证可靠传输 TCP使用累积确认 TCP ...

  8. ruby中顶层定义的方法究竟放在哪里?

    ruby中顶层(top level)中定义的方法放在main中,证明如下: self.private_methods(false) #IN TOP LEVEL 那么methods方法究竟是在哪定义的, ...

  9. asp.net 分布式探讨之Session共享问题

    ---恢复内容开始--- Session共享是分布式架构设计中的一大难点,尽管session共享的解决方案不少,但是.net 下的解决方案还是比较少,而且说明文档也很少. 之前尝试用memcached ...

  10. 赋给个人账户sudo的全部root执行权限

    sudo visudo 输入root账户密码后,会自动打开sudoers文件编辑 在root     ALL=(ALL)    ALL此行下增加一行 user ALL=(ALL)    NOPASSW ...