首页
学习
活动
专区
圈层
工具
发布

jQuery中on()、bind()、live()、delegate()之间的区别

及其以上版本;jquery1.7版本出现之后用于替代bind(),live()绑定事件方式; event 必需项;添加到元素的一个或多个事件,例如 click,dblclick等; 单事件处理:例如...接下来就详细说下几者之间的区别: 1 .bind() .bind()是直接绑定在元素上,也很好的解决了浏览器在事件处理中的兼容问题。....live()则是通过冒泡的方式来绑定到元素上的。...matchSelector方法来选出那个事件被调用时,会非常慢 当发生事件的元素在你的DOM树中很深的时候,会有performance问题 当然,live方法还可以被绑定到具体的元素(或context)...而和.live()相同的地方在于都是用event delegation; 优点 你可以选择把事件绑定到对应的元素上 chaining被正确的支持了 jQuery仍然需要迭代查找所有的selector/event

1.8K30
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    jQuery 事件绑定 和 JavaScript 原生事件绑定

    总结一下:jQuery 事件绑定 和 JavaScript 原生事件绑定 及 区别 jQuery 事件绑定 jQuery 中提供了四种事件监听绑定方式,分别是 bind、live、delegate、on...live、delegate 不多用,在Jquery1.7中已经移除,这里不多说 重点介绍 bind、on bind(event,[data],function) bind 是使用频率较高的一种,作用就是在选择到的元素上绑定特定事件类型的监听函数...最常用的一种 自 jQuery 版本 1.7 起,on() 方法是 bind()、live() 和 delegate() 方法的新的替代品。...该方法给 API 带来很多便利,我们推荐使用该方法,它简化了 jQuery 代码库。 注意:使用 on() 方法添加的事件处理程序适用于当前及未来的元素(比如由脚本创建的新元素)。...jQuery 中的事件绑定具有叠加性,JavaScript 的事件绑定则是可覆盖的。

    7K20

    02-老马jQuery教程-jQuery事件处理

    data:传递给事件处理函数的附加参数 fn:要从每个匹配元素的事件中反绑定的事件处理函数 实例: // 先绑定事件 $('.clickme').live('click', function() {...on()方法绑定事件处理程序到当前选定的jQuery对象中的元素。on汇总了bind和live两种绑定事件的方式。可以支持一般的bind方法或者委托的方法。...on()方法绑定事件处理程序到当前选定的jQuery对象中的元素。on汇总了bind和live两种绑定事件的方式。可以支持一般的bind方法或者委托的方法。...再也不会被触发 foo 2.6.2 解绑live的事件(die) 语法: $dom.die(type, [fn]) 元素中删除先前用.live()绑定的所有事件.(此方法与live正好完全相反。)...IE678:window.event 标准浏览器直接从事件处理程序的参数中获得事件对象e e = e || window.event; 在jQuery的事件处理程序中,可以直接获取事件对象,所有浏览器都兼容

    7.6K00

    50个必备的实用jQuery代码段

    jQuery 判断元素上是否绑定了事件 //jQuery event封装支持判断元素上是否绑定了事件,此方法只适用于jQuery绑定的事件 var $events = $("#foo").data("events...: $('button.someClass').live('click', someFunction); //注意,在jQuery 1.4.2中,delegate和undelegate选项 //被引入代替...live,因为它们提供了更好的上下文支持 //例如,就table来说,以前你会用 $("table").each(function(){   $("td", this).live("hover",...它存在…… } 如何使用jQuery来检测右键和左键的鼠标单击两种情况: $("#someelement").live('click', function(e) { if( (!...如何在jQuery中克隆一个元素: var cloned = $('#somediv').clone(); 在jQuery中如何测试某个元素是否可见 if($(element).is(':visible

    8K00

    02-老马jQuery教程-jQuery事件处理

    on()方法绑定事件处理程序到当前选定的jQuery对象中的元素。on汇总了bind和live两种绑定事件的方式。可以支持一般的bind方法或者委托的方法。...on()方法绑定事件处理程序到当前选定的jQuery对象中的元素。on汇总了bind和live两种绑定事件的方式。可以支持一般的bind方法或者委托的方法。...再也不会被触发 foo 2.6.2 解绑live的事件(die) 语法: $dom.die(type, [fn]) 元素中删除先前用.live()绑定的所有事件.(此方法与live正好完全相反。)...IE678:window.event 标准浏览器直接从事件处理程序的参数中获得事件对象e e = e || window.event; 在jQuery的事件处理程序中,可以直接获取�事件对象,所有浏览器都兼容...自定义事件 jQuery对象的的on方法不仅仅能绑定DOM中已经定义的事件,而且还可以注册和触发非标准事件也就是自定义的事件。

    3.7K80

    当使用 jquery 插件操作 input 时同步 vue 中绑定的变量办法

    发表于2018-05-102019-01-01 作者 wind 为什么要同步到 vue 上绑定的变量呢,因为如果我们不更新绑定的变量的值,vue 下次刷新组件的时候,就会将旧的值更新到 input...我一般使用的方法是在 vue 中定义自定义指令,函数中可以获取到 vnode,有了 vnode 就可以获取vnode.context也就是 vue 对象,有了 vue 对象就可以将新的值设置到v-model...绑定的那个变量上,因为这是指令,还不确定有多少个地方使用到了这个指令,所以可以通过从 el 上获取到一些信息,来帮助获取对应的 v-model 对象。...例如下面这个自动完成的 jquery 插件的例子: Vue.directive('myautocomplete', { inserted: function (el,binding...,vnode,oldVnode) { var jqEl = jQuery(el); console.log(jqEl); if (

    2.6K10

    jquery要怎么写才能速度最快?(转…

    其他语句的测试,比如.attr("value")和.val(),也是新版本的jQuery表现好于老版本。 2. 用对选择器 在jquery中,你可以用多种选择器,选择同一个网页元素。...但是,IE5-IE8都没有部署这个方法,所以这个选择器在IE中会相当慢。 (3)最慢的选择器:伪类选择器和属性选择器 先来看例子。...利用这一点,可以大大简化事件的绑定。...比如,有一个表格(table元素),里面有100个格子(td元素),现在要求在每个格子上面绑定一个点击事件(click),请问是否需要将下面的命令执行100次?   ...唯一的区别在于,.delegate()是当事件冒泡到指定的父元素时触发,.live()则是当事件冒泡到文档的根元素后触 发,因此.delegate()比.live()稍快一点。

    2.1K30

    jQuery最佳实践

    用对选择器 在jQuery中,你可以用多种选择器,选择同一个网页元素。每种选择器的性能是不一样的,你应该了解它们的性能差异。...但是,IE5-IE8都没有部署这个方法,所以这个选择器在IE中会相当慢。 (3)最慢的选择器:伪类选择器和属性选择器 先来看例子。...比如,有一个表格(table元素),里面有100个格子(td元素),现在要求在每个格子上面绑定一个点击事件(click),请问是否需要将下面的命令执行100次?...因此,这个事件只需要在父元素绑定1次即可,而不需要在子元素上绑定100次,从而大大提高性能。这就叫事件的"委托处理",也就是子元素"委托"父元素处理这个事件。 具体的写法有两种。...唯一的区别在于,.delegate()是当事件冒泡到指定的父元素时触发,.live()则是当事件冒泡到文档的根元素后触发,因此.delegate()比.live()稍快一点。

    1.7K20

    jQuery 升级踩坑大全

    使用了被废弃的jQuery.fn.live方法 jQuery Migrate库对此错误也在控制台有相应的警告: JQMIGRATE: jQuery.fn.live() is deprecated live...,取消事件处理函数的绑定。...deprecated 早期jQuery中名字叫toggle的函数有两个,一个是用于控制元素的显示和隐藏,这个用途的函数目前jQuery中依旧存在;另一个就是上面提到的被废弃的toggle函数,它用于绑定至少两个函数到同一个元素...IE6/7/8浏览器不支持修改input表单的type属性 在jQuery Migrate中是这样的警告: JQMIGRATE: Can't change the 'type' of an input...虽然我感觉这是一种并不算优雅的行为,但是很多浏览器都是支持这么做的,除了IE6/7/8。建议在实际中也是少用这个功能为好。 4.

    4.4K90

    如何实现动态添加的元素添加点击事件

    在页面开发过程中常常遇到需要动态添加元素,然后给这一元素绑定相关事件的情况,这种情况下一般需要给元素加上相关属性,然后写这些元素的事件函数即可。动态添加的元素怎么绑定事件呢?...原生JavaScript 原生JavaScript主要有2种实现方式,第一种是在动态添加的html代码中添加oclick事件,然后传递一个唯一的参数来判断点击的是哪个,然后做相应的操作。...然后处理程序检查触发事件的元素是否与您的选择器 ( dynamicChild)匹配。当匹配时,您的自定义处理程序函数将被执行。...---- 在此之前,推荐的方法是使用live(): $(selector).live( eventName, function(){} ); 然而,live()在 1.7 中被弃用on(),而在 1.9...(){} ); ---- 例如,如果您的页面使用类名动态创建元素,dosomething您会将事件绑定到已经存在的父级(这是这里问题的核心,您需要绑定到存在的东西,不要绑定到动态内容),这可以(也是最简单的选项

    5.6K20

    python测试开发django-167. jQuery中append() 动态新增的元素 click 事件无效的解决办法

    前言 使用append新增的div元素,绑定click事件无效的几种解决办法 遇到问题 绑定select下拉框click事件 // 绑定select下拉框click事件...最简单的方法就是直接在标签中写onclick=””, 这种是简单粗暴的解决办法,但一般不这样写。...使用live live()函数会给被选的元素绑定上一个或者多个事件处理程序,并且规定当这些事件发生时运行的函数。 通过live()函数适用于匹配选择器的当前及未来的元素。...}) 看到网上很多都是用的live方法,但是会报错:TypeError: $(…).live is not a function 主要原因是jquery中的live()方法在jquery1.9...及以上的版本中已被废弃了,受版本限制,大于1.9版本就用不了。

    1.3K20

    【jQuery动画】停止动画、淡入淡出、自定义动画

    实现效果 代码及思路 总结 ---- 停止动画 使用动画的过程中,如果在同一个元素上调用一个以上的动画方法,那么对这个元素来说,除了当前正在调用的动画,其他的动画将被放到效果队列中,这样就形成了动画队列...stop()方法 stop()方法适用于所有的jQuery效果,包括元素的淡入淡出、自定义动画等。...语法如下 $(selector).stop(stopAll,goToEnd); stopAll:用于规定是否清除动画队列,默认是false; goToEnd:用于规定是否立即完成当前的动画,默认是...显示效果 https://live.csdn.net/v/embed/243442 淡入淡出 HTML 思路: 1、设置一个盒子(box)存放方块; 2、设置一组div方块放在盒子中。...,默认是body; 3、给定义的按钮绑定点击事件; 4、设置动画,当单击鼠标时,div元素运动到距离左侧500px,距离顶部300px的位置,透明度为0.4,宽度为500px; <!

    3.6K20

    jquery中动态新增的元素节点无法触发事件解决办法

    在使用jquery中动态新增的元素节点时会发现添加的事件是无法触发的,我们下面就为各位来详细的介绍此问题的解决办法.   ...其实最简单的方法就是直接在标签中写onclick="",但是这样写其实是有点low的,最好的方式还是通过给类名绑定一个click事件。...解决jquery中动态新增的元素节点无法触发事件的问题有两种解决方法,如下: 方法一:使用live   live()函数会给被选的元素绑定上一个或者多个事件处理程序,并且规定当这些事件发生时运行的函数。...通过live()函数适用于匹配选择器的当前及未来的元素。比如,通过脚本动态创建的元素。...实现如下: $('.liLabel').live('click', function(){ alert('OK'); }); 方法二:使用on   可以通过on方法绑定事件,可以绑定到它的父级或者

    2.7K20

    asp.net中ScriptManager自带Ajax与jQuery事件冲突

    问题解决办法: 方法1、两者实现都能够实现页面的无刷新效果,所以可以保留其中的一种即可; 方法2、如果必须要两者混合应用,那么在用jQuery绑定事件是就要注意一些了    我们平时在jQuery中绑定事件最常用的方式有以下三种...所以针对上面问题,只需要在绑定事件的时候使用target.live("click",function(){})方式即可(jQuery版本必须是在1.4及其以上) 下面简单说明一下jQuery通过bind...(5)检测绑定事件的对象是否存在,判断是否需要继续执行绑定的事件。...由于只有在事件发生的时候,live方法才会去检测绑定事件的对象是否存在,所以live方法可以实现后来新增的元素也可实现事件的绑定。...相比之下,bind会在事件在绑定阶段就会判断绑定事件的元素是否存在,而且只针对当前元素进行绑定,而不是绑定到父节点上。

    1.4K10
    领券