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 相关文章推荐
统一接口:为FireFox添加IE的方法和属性的js代码
Mar 25 Javascript
JS 添加千分位与去掉千分位的示例
Jul 11 Javascript
文本域中换行符的替换示例
Mar 04 Javascript
jQuery实现table隔行换色和鼠标经过变色的两种方法
Jun 15 Javascript
node.js中的http.response.removeHeader方法使用说明
Dec 14 Javascript
jquery+javascript编写国籍控件
Feb 12 Javascript
jQuery获取当前点击的对象元素(实现代码)
May 19 Javascript
jQuery选取所有复选框被选中的值并用Ajax异步提交数据的实例
Aug 04 jQuery
JS实现带导航城市列表以及输入搜索功能
Jan 04 Javascript
Vue2.0+Vux搭建一个完整的移动webApp项目的示例
Mar 19 Javascript
ckeditor一键排版功能实现方法分析
Feb 06 Javascript
详解微信小程序轨迹回放实现及遇到的坑
Feb 02 Javascript
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
PHP四大安全策略
2014/03/12 PHP
PHP 面向对象程序设计(oop)学习笔记 (四) - 异常处理类Exception
2014/06/12 PHP
Laravel 5框架学习之Eloquent (laravel 的ORM)
2015/04/08 PHP
css动画效果之animation的常用样式
2021/03/09 HTML / CSS
ExtJS 学习专题(一) 如何应用ExtJS(附实例)
2010/03/11 Javascript
使用ImageMagick进行图片缩放、合成与裁剪(js+python)
2013/09/16 Javascript
jquery动态添加option示例
2013/12/30 Javascript
ExtJS4给Combobox设置列表中的默认值示例
2014/05/02 Javascript
网站基于flash实现的Banner图切换效果代码
2014/10/14 Javascript
Javascript中的Callback方法浅析
2015/03/15 Javascript
JS模式之单例模式基本用法
2015/06/30 Javascript
js实现拖拽效果(构造函数)
2015/12/14 Javascript
用JavaScript动态建立或增加CSS样式表的实现方法
2016/05/20 Javascript
微信开发 使用picker封装省市区三级联动模板
2016/10/28 Javascript
使用vue.js写一个tab选项卡效果
2017/03/25 Javascript
Vue.js弹出模态框组件开发的示例代码
2017/07/26 Javascript
javascript实现文件拖拽事件
2018/03/29 Javascript
AngularJS日期格式化常见操作实例分析
2018/05/17 Javascript
layer弹出的iframe层在执行完毕后关闭当前弹出层的方法
2018/08/17 Javascript
nodejs中各种加密算法的实现详解
2019/07/11 NodeJs
Vue如何获取数据列表展示
2019/12/11 Javascript
Vue+Java 通过websocket实现服务器与客户端双向通信操作
2020/09/22 Javascript
Vue实现省市区三级联动
2020/12/27 Vue.js
[01:20:30]OG vs LGD 2018国际邀请赛淘汰赛BO3 第四场 8.26
2018/08/30 DOTA
[01:11:46]DOTA2-DPC中国联赛 正赛 iG vs Magma BO3 第一场 2月23日
2021/03/11 DOTA
Python脚本实现下载合并SAE日志
2015/02/10 Python
python-序列解包(对可迭代元素的快速取值方法)
2019/08/24 Python
Python远程开发环境部署与调试过程图解
2019/12/09 Python
对Tensorflow中Device实例的生成和管理详解
2020/02/04 Python
Python爬虫与反爬虫大战
2020/07/30 Python
mysql有关权限的表都有哪几个
2015/04/22 面试题
个人简历自荐信
2013/12/05 职场文书
项目建议书格式
2014/03/12 职场文书
2014和解协议书范文
2014/09/15 职场文书
村干部群众路线教育活动对照检查材料
2014/10/01 职场文书
内乡县衙导游词
2015/02/05 职场文书