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 相关文章推荐
jqPlot Option配置对象详解
Jul 25 Javascript
JavaScript中的Array对象使用说明
Jan 17 Javascript
json实现前后台的相互传值详解
Jan 05 Javascript
简单谈谈javascript Date类型
Sep 06 Javascript
jquery.form.js框架实现文件上传功能案例解析(springmvc)
May 26 Javascript
js实现手机拍照上传功能
Jan 17 Javascript
Angular 4.X开发实践中的踩坑小结
Jul 04 Javascript
SeaJS中use函数用法实例分析
Oct 10 Javascript
详解如何使用webpack在vue项目中写jsx语法
Nov 08 Javascript
Vue+ElementUI项目使用webpack输出MPA的方法
Aug 27 Javascript
vue实现吸顶、锚点和滚动高亮按钮效果
Oct 21 Javascript
vue实现购物车结算功能
Jun 18 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批量生成随机用户名
2008/07/10 PHP
PHP中去掉字符串首尾空格的方法
2012/05/19 PHP
php Session存储到Redis的方法
2013/11/04 PHP
可以保证单词完整性的PHP英文字符串截取代码分享
2014/07/15 PHP
php 升级到 5.3+ 后出现的一些错误,如 ereg(); ereg_replace(); 函数报错
2015/12/07 PHP
PHP全局变量与超级全局变量区别分析
2016/04/01 PHP
css3元素简单的闪烁效果实现(html5 jquery)
2013/12/28 Javascript
三种检测iPhone/iPad设备方向的方法
2014/04/23 Javascript
JavaScript通过prototype给对象定义属性用法实例
2015/03/23 Javascript
JavaScript时间操作之年月日星期级联操作
2016/01/15 Javascript
jQuery插件编写步骤详解
2016/06/03 Javascript
Vue-路由导航菜单栏的高亮设置方法
2018/03/17 Javascript
浅谈webpack4 图片处理汇总
2018/09/12 Javascript
详解puppeteer使用代理
2018/12/27 Javascript
Javascript中Math.max和Math.max.apply的区别和用法详解
2020/08/24 Javascript
vue radio单选框,获取当前项(每一项)的value值操作
2020/09/10 Javascript
[58:09]Spirit vs NB Supermajor小组赛 A组败者组决赛 BO3 第三场 6.2
2018/06/03 DOTA
[19:26]TNC vs EG (BO3)
2018/06/07 DOTA
17个Python小技巧分享
2015/01/23 Python
Python字符编码判断方法分析
2016/07/01 Python
python 实现将多条曲线画在一幅图上的方法
2019/07/07 Python
TensorFlow dataset.shuffle、batch、repeat的使用详解
2020/01/21 Python
Python学习之os模块及用法
2020/06/03 Python
python subprocess pipe 实时输出日志的操作
2020/12/05 Python
Python 内存管理机制全面分析
2021/01/16 Python
Python LMDB库的使用示例
2021/02/14 Python
HTML5的结构和语义(2):结构
2008/10/17 HTML / CSS
澳大利亚吉他在线:Artist Guitars
2017/03/30 全球购物
Linux面试题LINUX系统类
2014/11/19 面试题
建筑系毕业生自我鉴定
2014/01/24 职场文书
拒绝黄毒毒宣传标语
2014/06/26 职场文书
2015年度信用社工作总结
2015/05/04 职场文书
个人工作决心书
2015/09/22 职场文书
七年级作文之环保作文
2019/10/17 职场文书
基于JavaScript实现省市联动效果
2021/06/22 Javascript
详解Golang如何实现支持随机删除元素的堆
2022/09/23 Python