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 相关文章推荐
jQuery 使用手册(五)
Sep 23 Javascript
jquery异步循环获取功能实现代码
Sep 19 Javascript
基于JQuery的抓取博客园首页RSS的代码
Dec 01 Javascript
jquery实现的图片点击滚动效果
Apr 29 Javascript
Jquery节点遍历next与nextAll方法使用示例
Jul 22 Javascript
Jquery 实现grid绑定模板
Jan 28 Javascript
Jquery中Event对象属性小结
Feb 27 Javascript
HTML5+setCutomValidity()函数验证表单实例分享
Apr 24 Javascript
JavaScript转换与解析JSON方法实例详解
Nov 24 Javascript
BootStrap入门教程(一)之可视化布局
Sep 19 Javascript
在Vue组件中获取全局的点击事件方法
Sep 06 Javascript
jquery实现手风琴案例
May 04 jQuery
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
file_get_contents获取不到网页内容的解决方法
2013/03/07 PHP
深入PHP curl参数的详解
2013/06/17 PHP
PHP实现QQ快速登录的方法
2016/09/28 PHP
php 无限分类 树形数据格式化代码
2016/10/11 PHP
PHP+redis实现微博的拉模型案例详解
2019/07/10 PHP
JavaScript 设计模式学习 Factory
2009/07/29 Javascript
cnblogs csdn 代码运行框实现代码
2009/11/02 Javascript
基于jquery的监控数据是否发生改变
2011/04/11 Javascript
分享有关jQuery中animate、slide、fade等动画的连续触发、滞后反复执行的bug
2016/01/10 Javascript
Bootstrap框架结合jQuery仿百度换肤功能实例解析
2016/09/17 Javascript
教你一步步用jQyery实现轮播器
2016/12/18 Javascript
vue-cli单页应用改成多页应用配置详解
2017/07/14 Javascript
webpack配置之后端渲染详解
2017/10/26 Javascript
使用express搭建一个简单的查询服务器的方法
2018/02/09 Javascript
React之PureComponent的使用作用
2018/07/10 Javascript
Element-UI中Upload上传文件前端缓存处理示例
2019/02/21 Javascript
在antd Table中插入可编辑的单元格实例
2020/10/28 Javascript
Vue 列表页带参数进详情页的操作(router-link)
2020/11/13 Javascript
JavaScript实现原型封装轮播图
2020/12/27 Javascript
使用Python抓取模板之家的CSS模板
2015/03/16 Python
python将ip地址转换成整数的方法
2015/03/17 Python
Python使用Flask框架同时上传多个文件的方法
2015/03/21 Python
python交互式图形编程实例(一)
2017/11/17 Python
python实现自动化上线脚本的示例
2019/07/01 Python
Python with语句用法原理详解
2020/07/03 Python
Python实现封装打包自己写的代码,被python import
2020/07/12 Python
python中pivot()函数基础知识点
2021/01/03 Python
亚马逊巴西站:Amazon.com.br
2019/09/22 全球购物
企业后勤岗位职责
2014/02/28 职场文书
宝宝满月酒主持词和仪式流程
2014/03/27 职场文书
啦啦队口号大全
2014/06/16 职场文书
小学优秀教师先进事迹材料
2014/12/16 职场文书
喋血孤城观后感
2015/06/08 职场文书
英语导游欢迎词
2015/09/30 职场文书
详解Java实践之适配器模式
2021/06/18 Java/Android
Python实现GIF动图以及视频卡通化详解
2021/12/06 Python