jQuery中on()方法用法实例详解


Posted in Javascript onFebruary 06, 2015

本文实例分析了jQuery on()方法的用法。分享给大家供大家参考。具体分析如下:

一、jQuery on()方法的使用:
 
on(events,[selector],[data],fn)
 
events:一个或多个用空格分隔的事件类型和可选的命名空间,如"click"或"keydown.myPlugin" 。
selector:一个选择器字符串用于过滤器的触发事件的选择器元素的后代。如果选择器为null或省略,当它到达选定的元素,事件总是触发。
data:当一个事件被触发时要传递event.data给事件处理函数。
fn:该事件被触发时执行的函数。 false 值也可以做一个函数的简写,返回false。

二、jQuery on()方法的优点:
 
1、提供了一种统一绑定事件的方法

2、仍然提供了.delegate()的优点,当然如果需要你也可以直接用.bind()

三、与.bind(), .live(), .delegate()的比较:
 
1、其实.bind(), .live(), .delegate()都是通过.on()来实现的

bind: function( types, data, fn ) {

        return this.on( types, null, data, fn );

    },

    unbind: function( types, fn ) {

        return this.off( types, null, fn );

    },
    live: function( types, data, fn ) {

        jQuery( this.context ).on( types, this.selector, data, fn );

        return this;

    },

    die: function( types, fn ) {

        jQuery( this.context ).off( types, this.selector || "**", fn );

        return this;

    },
    delegate: function( selector, types, data, fn ) {

        return this.on( types, selector, data, fn );

    },

    undelegate: function( selector, types, fn ) {

        // ( namespace ) or ( selector, types [, fn] )

        return arguments.length === 1 ? this.off( selector, "**" ) : this.off( types, selector || "**", fn );

    }

2、用.bind()的代价是非常大的,它会把相同的一个事件处理程序hook到所有匹配的DOM元素上

3、不要再用.live()了,它已经不再被推荐了,而且还有许多问题

4、.delegate()会提供很好的方法来提高效率,同时我们可以添加一事件处理方法到动态添加的元素上。

5、我们可以用.on()来代替上述的3种方法

四、jQuery on()方法的使用示例

1、绑定click事件,使用off()方法移除on()所绑定的方法

$(document).ready(function(){

$("p").on("click",function(){

$(this).css("background-color","pink");

});

$("button").click(function(){

$("p").off("click");

});

});

2、多个事件绑定同一个函数

$(document).ready(function(){

  $("p").on("mouseover mouseout",function(){

    $("p").toggleClass("intro");

  });

});

3、多个事件绑定不同函数

$(document).ready(function(){

  $("p").on({

    mouseover:function(){$("body").css("background-color","lightgray");},  

    mouseout:function(){$("body").css("background-color","lightblue");}, 

    click:function(){$("body").css("background-color","yellow");}  

  });

});

4、绑定自定义事件

$(document).ready(function(){

  $("p").on("myOwnEvent", function(event, showName){

    $(this).text(showName + "! What a beautiful name!").show();

  });

  $("button").click(function(){

    $("p").trigger("myOwnEvent",["Anja"]);

  });

});

5、传递数据到函数

function handlerName(event) 

{

  alert(event.data.msg);

}
$(document).ready(function(){

  $("p").on("click", {msg: "You just clicked me!"}, handlerName)

});

6、适用于未创建的元素

$(document).ready(function(){

  $("div").on("click","p",function(){

    $(this).slideToggle();

  });

  $("button").click(function(){

    $("<p>This is a new paragraph.</p>").insertAfter("button");

  });

});

希望本文所述对大家的jQuery程序设计有所帮助。

Javascript 相关文章推荐
javascript 贪吃蛇实现代码
Nov 22 Javascript
javascript 写类方式之四
Jul 05 Javascript
谈谈JavaScript异步函数发展历程
Sep 29 Javascript
JS如何判断是否为ie浏览器的方法(包括IE10、IE11在内)
Dec 13 Javascript
jQuery动态添加及删除表单上传元素的方法(附demo源码下载)
Jan 15 Javascript
jQuery实现放大镜效果实例代码
Mar 17 Javascript
使用getBoundingClientRect方法实现简洁的sticky组件的方法
Mar 22 Javascript
详解JavaScript中|单竖杠运算符的使用方法
May 23 Javascript
[原创]javascript typeof id==='string'?document.getElementById(id):id解释
Nov 02 Javascript
JS作用域闭包、预解释和this关键字综合实例解析
Dec 16 Javascript
jquery实现提示语淡入效果
May 05 jQuery
vue2实现可复用的轮播图carousel组件详解
Nov 27 Javascript
JS实现文字向下滚动完整实例
Feb 06 #Javascript
jquery中filter方法用法实例分析
Feb 06 #Javascript
Jquery对select的增、删、改、查操作
Feb 06 #Javascript
JavaScript常用的弹出广告及背投广告实现方法
Feb 06 #Javascript
js实现图片从左往右渐变切换效果的方法
Feb 06 #Javascript
js实现多选项切换导航菜单的方法
Feb 06 #Javascript
javascript实现多级联动下拉菜单的方法
Feb 06 #Javascript
You might like
无线电波是什么?它是怎样传输的?
2021/03/01 无线电
10条php编程小技巧
2015/07/07 PHP
php中实现用数组妩媚地生成要执行的sql语句
2015/07/10 PHP
php中switch语句用法详解
2015/08/17 PHP
详解cookie验证的php应用的一种SSO解决办法
2017/10/20 PHP
PHP PDOStatement::rowCount讲解
2019/02/01 PHP
YII2.0框架行为(Behavior)深入详解
2019/07/26 PHP
用函数模板,写一个简单高效的 JSON 查询器的方法介绍
2013/04/17 Javascript
深入理解JavaScript系列(46):代码复用模式(推荐篇)详解
2015/03/04 Javascript
JavaScript中逗号运算符介绍及使用示例
2015/03/13 Javascript
Javascript调用函数方法的几种方式介绍
2015/03/20 Javascript
jquery实现树形菜单完整代码
2015/12/29 Javascript
AngularJS 依赖注入详解及示例代码
2016/08/17 Javascript
Angularjs实现带查找筛选功能的select下拉框示例代码
2016/10/04 Javascript
Bootstrap分页插件之Bootstrap Paginator实例详解
2016/10/15 Javascript
基于vue+ bootstrap实现图片上传图片展示功能
2017/05/17 Javascript
基于jQuery实现的Ajax 验证用户名唯一性实例代码
2017/06/28 jQuery
JQuery 获取Dom元素的实例讲解
2017/07/08 jQuery
vue实现同一个页面可以有多个router-view的方法
2018/09/20 Javascript
jQuery Migrate 插件用法实例详解
2019/05/22 jQuery
layui的select联动实现代码
2019/09/28 Javascript
[48:39]Ti4主赛事胜者组第一天 EG vs NEWBEE 2
2014/07/19 DOTA
利用soaplib搭建webservice详细步骤和实例代码
2013/11/20 Python
书单|人生苦短,你还不用python!
2017/12/29 Python
Python(TensorFlow框架)实现手写数字识别系统的方法
2018/05/29 Python
浅析Python 3 字符串中的 STR 和 Bytes 有什么区别
2018/10/14 Python
浅析python 中大括号中括号小括号的区分
2019/07/29 Python
全球领先的鞋类零售商:The Walking Company
2016/07/21 全球购物
End Clothing美国站:英国男士潮牌商城
2018/04/20 全球购物
大学生实习自我鉴定
2013/12/11 职场文书
劳动之星获奖感言
2014/02/01 职场文书
经贸专业毕业生求职信
2014/03/23 职场文书
综治维稳工作承诺书
2014/08/30 职场文书
经营场所使用证明
2015/06/19 职场文书
2015年学校教科室工作总结
2015/07/20 职场文书
初中数学教学反思范文
2016/02/17 职场文书