jQuery on()方法使用技巧详解


Posted in Javascript onApril 16, 2015

jQuery on()方法是官方推荐的绑定事件的一个方法。

$(selector).on(event,childSelector,data,function,map)

由此扩展开来的几个以前常见的方法有.
bind()

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


alert("The paragraph was clicked.");

});

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


alert("The paragraph was clicked.");

});
delegate()

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


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

});

$("#div2").delegate("p","click",function(){


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

});


live()

$("#div1").on("click",function(){


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

});

$("#div2").live("click",function(){


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

});

以上三种方法在jQuery1.8之后都不推荐使用,官方在1.9时已经取消使用live()方法了,所以建议都使用on()方法。

tip:如果你需要移除on()所绑定的方法,可以使用off()方法处理。

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


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

});

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


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

});

});

tip:如果你的事件只需要一次的操作,可以使用one()这个方法
$(document).ready(function(){
$("p").one("click",function(){


$(this).animate({fontSize:"+=6px"});

});

});

trigger()绑定
$(selector).trigger(event,eventObj,param1,param2,...)

$(document).ready(function(){
$("input").select(function(){


$("input").after(" Text marked!");

});

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


$("input").trigger("select");

});

});

多个事件绑定同一个函数
$(document).ready(function(){

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

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

  });

});

多个事件绑定不同函数
$(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");}  

  });

});

绑定自定义事件
$(document).ready(function(){

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

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

  });

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

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

  });

});

传递数据到函数
function handlerName(event) 

{

  alert(event.data.msg);

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

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

});

适用于未创建的元素
$(document).ready(function(){

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

    $(this).slideToggle();

  });

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

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

  });

});
Javascript 相关文章推荐
csdn 博客中实现运行代码功能实现
Aug 29 Javascript
Javascript 面向对象 命名空间
May 13 Javascript
javascript中万恶的function实例分析
May 25 Javascript
JS html时钟制作代码分享
Mar 03 Javascript
AngularJS模糊查询功能实现代码(过滤内容下拉菜单排序过滤敏感字符验证判断后添加表格信息)
Oct 24 Javascript
从0到1搭建element后台框架优化篇(打包优化)
May 12 Javascript
微信小程序结合Storage实现搜索历史效果
May 18 Javascript
详解如何提升JSON.stringify()的性能
Jun 12 Javascript
vue ajax 拦截原理与实现方法示例
Nov 29 Javascript
小程序Scroll-view上拉滚动刷新数据
Jun 21 Javascript
jquery简易手风琴插件的封装
Oct 13 jQuery
Vue实现多页签组件
Jan 14 Vue.js
JavaScript简单表格编辑功能实现方法
Apr 16 #Javascript
JavaScript转换二进制编码为ASCII码的方法
Apr 16 #Javascript
JavaScript实现彩虹文字效果的方法
Apr 16 #Javascript
JavaScript监听文本框回车事件并过滤文本框空格的方法
Apr 16 #Javascript
JQuery跳出each循环的方法
Apr 16 #Javascript
jQuery $.each遍历对象、数组用法实例
Apr 16 #Javascript
jQuery Ajax中的事件详细介绍
Apr 16 #Javascript
You might like
杏林同学录(一)
2006/10/09 PHP
PHPMyAdmin 快速配置方法
2009/05/11 PHP
PHP测试程序运行时间的类
2012/02/05 PHP
php学习笔记之mb_strstr的基本使用
2018/02/03 PHP
微信公众平台开发教程⑥ 微信开发集成类的使用图文详解
2019/04/10 PHP
PHP操作路由器实现方法示例
2019/04/27 PHP
js实现的跟随鼠标移动的时钟效果(中英文日期显示)
2011/01/17 Javascript
jQuery实现点击文本框弹出热门标签的提示效果
2013/11/17 Javascript
js控制当再次点击按钮时的间隔时间
2014/06/03 Javascript
JavaScript字符串对象fromCharCode方法入门实例(用于把Unicode值转换为字符串)
2014/10/17 Javascript
jQuery封装的tab选项卡插件分享
2015/06/16 Javascript
微信小程序“摇一摇”的实例代码
2017/07/20 Javascript
vue二级路由设置方法
2018/02/09 Javascript
微信小程序自定义组件实现tabs选项卡功能
2018/07/14 Javascript
用POSTMAN发送JSON格式的POST请求示例
2018/09/04 Javascript
vue实现多组关键词对应高亮显示功能
2019/07/25 Javascript
vue 解决兄弟组件、跨组件深层次的通信操作
2020/07/27 Javascript
[07:25]DOTA2-DPC中国联赛2月5日Recap集锦
2021/03/11 DOTA
python复制与引用用法分析
2015/04/08 Python
Python命令启动Web服务器实例详解
2017/02/23 Python
Python操作mysql数据库实现增删查改功能的方法
2018/01/15 Python
在pycharm中配置Anaconda以及pip源配置详解
2019/09/09 Python
python os.path.isfile 的使用误区详解
2019/11/29 Python
使用pymysql查询数据库,把结果保存为列表并获取指定元素下标实例
2020/05/15 Python
Spring @Enable模块驱动原理及使用实例
2020/06/23 Python
html5定制表单_动力节点Java学院整理
2017/07/11 HTML / CSS
Java面试题:说出如下代码的执行结果
2015/10/30 面试题
感恩教育月活动总结
2014/07/07 职场文书
国际经济与贸易专业求职信
2014/07/10 职场文书
2014机关干部学习“焦裕禄精神”思想汇报
2014/09/19 职场文书
技术入股合作协议书
2014/10/07 职场文书
教师求职简历自我评价
2015/03/10 职场文书
2016年端午节校园广播稿
2015/12/18 职场文书
Nginx优化服务之网页压缩的实现方法
2021/03/31 Servers
Redis如何一键部署脚本
2021/04/12 Redis
正确使用MySQL INSERT INTO语句
2021/05/26 MySQL