前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >jQuery on()方法

jQuery on()方法

作者头像
陈灬大灬海
发布于 2019-03-11 03:57:50
发布于 2019-03-11 03:57:50
1.1K00
代码可运行
举报
运行总次数:0
代码可运行

绑定click事件,使用jquery的$().click(func)?别闹了,属实是low。

虽然之前在ajax回调成功后通过dom添加过元素,遇到过这种情况,事件绑定会失效。今天又遇到了,在此总结下。

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$(selector).on(event,childSelector,data,function,map)

$().click()和$(document).on('click','要选择的元素',function(){})的

最大的区别即优点是如果动态创建的元素在该选择器选中范围内是能触发回调函数。

$().on()的知识点补充:   1.从jQuery 1.7开始,on()函数提供了绑定事件处理程序所需的所有功能,用于统一取代以前的bind()、 delegate()、 live()等事件函数。 $().bind()直接绑定在元素上,和click,blur,mouseon一样的点击事件。 $().live()是通过冒泡的方式来绑定到元素上的。更适合列表类型的,绑定到document DOM节点上。 $().delegate()是更精确的小范围的使用事件代理。 $().on()结合了这三个方法的优势摒弃了劣势。

  2.该函数可以为同一元素、同一事件类型绑定多个事件处理函数。触发事件时,jQuery会按照绑定的先后顺序依次执行绑定的事件处理函数。   3. 阻止事件冒泡和事件委托的方法:     A:return false。  在事件的处理中,可以阻止默认事件和冒泡事件。

    B:event.preventDefault()       在事件的处理中,可以阻止默认事件但是允许冒泡事件的发生。

    C:event.stopPropagation().。       在事件的处理中,可以阻止冒泡但是允许默认事件的发生。

jQuery on()扩展开来的几个以前常见的方法有.

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
bind()
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
  $("p").bind("click",function(){
    alert("The paragraph was clicked.");
  });

  $("p").on("click",function(){
    alert("The paragraph was clicked.");
  });
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
delegate()
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
  $("#div1").on("click","p",function(){
    $(this).css("background-color","pink");
  });

  $("#div2").delegate("p","click",function(){
    $(this).css("background-color","pink");
  });
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
live()
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
  $("#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()方法处理。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$(document).ready(function(){
  $("p").on("click",function(){
    $(this).css("background-color","pink");
  });
  $("button").click(function(){
    $("p").off("click");
  });
});

tip:如果你的事件只需要一次的操作,可以使用one()这个方法

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$(document).ready(function(){
  $("p").one("click",function(){
    $(this).animate({fontSize:"+=6px"});
  });
});

trigger()绑定

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$(selector).trigger(event,eventObj,param1,param2,...)
$(document).ready(function(){
  $("input").select(function(){
    $("input").after(" Text marked!");
  });
  $("button").click(function(){
    $("input").trigger("select");
  });
});

多个事件绑定同一个函数

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$(document).ready(function(){
  $("p").on("mouseover mouseout",function(){
    $("p").toggleClass("intro");
  });
});

多个事件绑定不同函数

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$(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");}  
  });
});

绑定自定义事件

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$(document).ready(function(){
  $("p").on("myOwnEvent", function(event, showName){
    $(this).text(showName + "! What a beautiful name!").show();
  });
  $("button").click(function(){
    $("p").trigger("myOwnEvent",["Anja"]);
  });
});

传递数据到函数

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
function handlerName(event) 
{
  alert(event.data.msg);
}

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

适用于未创建的元素

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$(document).ready(function(){
  $("div").on("click","p",function(){
    $(this).slideToggle();
  });
  $("button").click(function(){
    $("<p>This is a new paragraph.</p>").insertAfter("button");
  });
});

项目经理是这么说的,还在用.click,你这样面试是会被刷下去的。。。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019-02-27 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
jQuery on()方法
以上三种方法在jQuery1.8之后都不推荐使用,官方在1.9时已经取消使用live()方法了,所以建议都使用on()方法。
山河木马
2019/03/05
5220
jQuery基础--事件处理
简单事件绑定>>bind事件绑定>>delegate事件绑定>>on事件绑定(推荐)
eadela
2019/09/29
2.5K0
day01jQuery节点操作
在JavaScript的使用过程中,存在很多问题,例如:兼容问题(咱不考虑),元素获取方式单一(只能用基本的选择器)等等,因此就出现了很多第三方的封装库(将复杂的、麻烦的功能进行封装,提供给用户一种简单的、可直接调用的形式进行使用),在众多的第三方库中脱颖而出的就是jQuery。
张哥编程
2024/12/13
890
day01jQuery节点操作
jquery 事件绑定及取消 bind live delegate on one区别 (超详细且通俗易懂)
$(selector).bind(event,data,function,map)
坚毅的小解同志的前端社区
2022/11/28
2.5K0
jQuery的 delegate问题
支持为动态生成的标签元素绑定事件也许就live和delegate了吧,不过新版本已经不支持live了,只有delegate
书童小二
2018/09/03
7870
JavaWeb(八)JQuery
jQuery 市场用得比较多两个框架: jQuery 比较适合做一些互联网 的应用(12306.com,蘑菇街,美丽说,聚美) extjs 比较适合做后台管理系统(电商(订单管理),银行,电信) 核心: 主要功能:javascript开发人员查找元素、操作DOM、处理事件、执行动画和开发Ajax的操作。优势:(宗旨:write less ,do more 写更少的代码,做更多的事情) 1:轻量级 (js 库非常小) 2:强大的选择器(获取页面上面的dom 元素 document.getElementByI
二十三年蝉
2018/02/28
1.9K0
JavaScript 事件委托 以及jQuery对事件委托的支持
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://louluan.blog.csdn.net/article/details/24009177
亦山
2019/05/25
8890
Web前端JQuery入门实战案例
快速的,轻量级的,功能丰富的 js 库。动画(animation),ajax,DOM,更简单,容易使用的api。
达达前端
2019/07/03
4K0
jQuery基础
使用jQuery时, $ 是访问jQuery的标志,但是如果有其他方法与jQuery中的 $冲突时,可以释放$的使用权 ,还可以自定义一个符号来代替 $使用。
不愿意做鱼的小鲸鱼
2022/08/24
1.8K0
jQuery基础
【领会要领】web前端-轻量级框架应用(jQuery基础)
jquery的安装和语法,jquery的多种选择器,dom操作和jquery事件。
达达前端
2019/12/13
2.3K0
jquery第一次课的案例教程
js库:把一些常用到的方法写到一个单独的js文件,使用的时候直接去引用这js文件就可以了。 (animate.js、common.js)
张哥编程
2024/12/19
2130
jQuery学习笔记
jQuery大部分功能需要根据文档的DOM模型来工作,首先需要正确地解析到整个文档的DOM模型结构。使用jQuery需要在整个文档被浏览器完全加载后才开始进行。
wangxl
2018/07/27
3.6K0
02-老马jQuery教程-jQuery事件处理
1. 绑简单事件 在DOM中DOM0级绑定事件的方式是直接给事件属性赋值,但是这样有个缺点就是每次指定的事件处理程序会把之前的覆盖掉。 jQuery简单绑定事件的方式,可以让我绑定多个事件处理程序跟D
老马
2018/01/05
2.9K0
jQuery学习笔记
jQuery函数位于一个document ready函数中,我们需要在js中加载该函数文档
Mirror王宇阳
2020/11/13
7.7K0
jQuery学习笔记
jQuery选择器、Dom操作、样式、事件处理
1.库和框架的区别? 库:就是API函数库,提供API供你调用。库内部已经做了各种底层的封装,以及各种兼容问题的处理,工作中调用库内的API接口就能实现需要的功能,不需要额外的代码来处理函数封装和兼容问题,让代码更简洁,效率更高。库就像是一个工具盒,需要什么工具就从库中调用。 使用库的过程就是根据所需的功能,查文档,再调用库内的对应的API接口。 框架:提供一套完整的解决方案,你按照方案来操作以实现需求。 使用框架的过程就是先查文档,再照着文档写代码,出错了再查文档。 2.jquery 能做什么
小胖
2018/06/27
2.1K0
Web阶段:第五章:JQuery库
点击:API文档下载 Jquery介绍 1.什么是JQuery ? jQuery,顾名思义,也就是JavaScript和查询(Query),它就是辅助JavaScript开发的js类库。 2.JQue
Java廖志伟
2022/09/28
26.7K0
Web阶段:第五章:JQuery库
jQuery
DOM 对象 Alert 出来的效果是:[object HTML 标签名 Element]
OY
2022/03/12
11K0
jQuery
jQuery
jQuery是目前使用最广泛的javascript函数库。据统计,全世界排名前100万的网站,有46%使用jQuery,远远超过其他库。微软公司甚至把jQuery作为他们的官方库。
py3study
2020/01/16
4.2K0
jQuery
ps:.offset()方法允许我们检索一个元素相对于文档(document)的当前位置,和 .position()的差别在于: .position()是相对于相对于父级元素的位移;
HammerZe
2022/03/25
7K0
jQuery
02-老马jQuery教程-jQuery事件处理
根据文章内容总结摘要。
老马
2017/12/27
6.6K0
02-老马jQuery教程-jQuery事件处理
相关推荐
jQuery on()方法
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验