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

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

jQuery的.on()、.bind()、.live()和.delegate()之间的区别并非总是那么明显的,然而,如果我们对所有的不同之处都有清晰的理解的话,那么这将会有助于我们编写出更加简洁的代码,.../jquery1.9版本以下支持,jquery1.9及其以上版本删除了此方法,jquery1.9以上版本用on()方法来代替 $(selector).delegate(childSelector...及其以上版本;jquery1.7版本出现之后用于替代bind(),live()绑定事件方式; event 必需项;添加到元素的一个或多个事件,例如 click,dblclick等; 单事件处理:例如...;适用所有版本,但是根据官网解释,自从jquery1.7版本以后bind()函数推荐用on()来代替。...接下来就详细说下几者之间的区别: 1 .bind() .bind()是直接绑定在元素上,也很好的解决了浏览器在事件处理中的兼容问题。

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

    JQuery中的bind()和unbind()的理解「建议收藏」

    大家好,又见面了,我是你们的朋友全栈君。 bind()和unbind()提供了事件的绑定和取消机制,既可以绑定html默认支持的事件,也能够绑定自定义的事件。...1、JQuery中事件可以重复绑定,不会覆盖。...如果我们指定了自定义的参数,那么JQuery会将它放在事件对象的data属性中,即通过eventObject.data就能够拿到我们传递的参数值。 4、事件取消的三种形式。...可以看到这种做法非常的不好,因为这种做法不允许使用匿名函数,我们不得不暴露全局的函数(至少要求unbind的时候能够看得见)。JQuery提供了事件命名空间机制 5、事件命名空间。...这里值得一提:使用了命名空间与unbind并不冲突,上面三种形式的unbind依然可以正常使用。

    1.9K30

    关于jQuery用bind动态绑定事件无效的处理

    最近在进行页面开发,在做页面特效的时候,需要给一个动态加载的按钮赋予一个事件 于是不假思索的 用$(obj).bind(); 来绑定事件 。...但是这样存在一个问题: bind确实能绑定事件,但是那是相对于固定的html标签来说 当页面内容属于动态加载的时候,bind事件就存在一个bug, 只能bind一次,当你第二次触发事件的时候就没用了...例如: 我给标签赋予一个click , 标签包括内容都是从后台数据读取然后动态加载的 。...当我使用bind来绑定click事件,这时, 第一次点击click能成功触发 但是第二次点击,click事件无效了......后面研究发现,jQuery还有个绑定事件的方法:delegate(); 用法如下: $(".sentnum-box").delegate(".a-add-ordergoods","click",function

    1.7K20

    jquery 绑定事件 bind() unbind() 以及 事件函数列表

    mouseleave() 鼠标离开(离开子元素不触发) hover() 同时为mouseenter和mouseleave事件指定处理函数 ready() DOM加载完成 resize() 浏览器窗口的大小发生改变...scroll() 滚动条的位置发生变化 submit() 用户递交表单 绑定事件的其他方式 $(function(){ $('#div1').bind('mouseover click', function...(event) { alert($(this).html()); }); }); 取消绑定事件 $(function(){ $('#div1').bind('mouseover...可以看到,使用这种方式绑定click事件也是可以的。 那么,如果希望点击一次就不能点击,就可以设置一下解绑事件,如下: ? 从这里可以看出,只能触发一次click事件。因为已经解除绑定了。...那么解绑是不是也一样可以写多个的呢? ? 解除绑定的确可以写多个事件同时解除。

    2K20

    jQuery(function(){})与(function(){})(jQuery)的区别

    三、总结 jQuery(function(){ });用于存放操作DOM对象的代码,执行其中代码时DOM对象已存在。...不可用于存放开发插件的代码,因为jQuery对象没有得到传递,外部通过jQuery.method也调用不了其中的方法(函数)。...(function(){ })(jQuery);用于存放开发插件的代码,执行其中代码时DOM不一定存在,所以直接自动执行DOM操作的代码请小心使用。 补充: (function($){...})...这就定义了一个匿名函数,参数为arg 而调用函数时,是在函数后面写上括号和实参的,由于操作符的优先级,函数本身也需要用括号,即: (function(arg){...})...(jQuery)则是一样的,之所以只在形参使用$,是为了不与其他库冲突,所以实参用jQuery ,上述也可以这样写:var fn = function($){....}; fn(jQuery);

    1.3K100

    std::function与std::bind

    一、背景介绍: 函数指针始终不太灵活,它只能指向全局或静态函数,对于类成员函数、lambda表达式或其他可调用对象就无能为力了,因此,C++11推出了std::function与std::bind这两件大杀器...,他们配合起来能够很好的替代函数指针。...二、内容介绍: bind提供两类比较重要的功能: 一个是:可以自定义参数的位置,补充进来需要函数里面缺少的参数(备注:这里主要针对Class里面的成员函数里面的默认参数this) 1. bind里面的参数顺序代码示例...auto f1 = std::bind(f, _2, 42, _1, _3, n); n = 10; // 参数的对应关系为:1--》n3,2-->n1,42--->n2,1001-->...std::cout bind to a pointer to member function: "; Foo foo; // 这里的&foo就是为了补齐成员变量里面的默认参数

    1.3K10

    DNS(bind)服务器的安装与配置

    DNS基础   DNS 是计算机域名系统 (Domain Name System 或Domain Name Service) 的缩写,域名服务器是进行域名(domain name)和与之相对应的IP地址...DNS中保存了一张域名(domain name)和与之相对应的IP地址 (IP address)的表,以解析消息的域名。...因为DNS是逐级管理的,所以在不同的层级中主机名与域名也是不同的;以www.google.com为例,在第二层中,.com就是域名,google就是主机名,而到了第三层中,.google.com就成了域名...注意:主机名与域名并不是依据"."来划分的,主机名中也可以包含"."号的,主要还是要根据域名的注册情况来划分。   3、正向解析     从FQDN转换为IP地址称为正向解析。   ...正向解析与反向解析使用不同的解析库。   资源记录:rr(resource record),有类型的概念;用于此记录解析的属性。

    12.4K33

    Dom与Jquery的ajax

    Dom与jquery互相转换 DOM是文档对象模型(Document Object Model,简称DOM) jQuery是一个JavaScript 库,极大地简化了JavaScript编程。...dom与jq互转,jq对象只能用jq方法,dom对象只能用内置的dom方法,不能互窜 $(“#test”) //jq对象 $(“#test”)[0] //dom对象 $(“#test”).get(0)...//dom与jquery互相转换 //取得标签中的value属性的内容[dom对象->jquery对象] var inputElement = document.getElementById...(value); //取得 标签中的文本内容[jquery对象->dom对象,方法一] var $div = $("#divID");//jQuery对象 var divElement...text(val):设置所有匹配元素的文本内容 与 html() 类似, 但将编码 HTML (将 “” 替换成相应的HTML实体). 3.VAL val():获得第一个匹配元素的当前值

    84310

    std和boost的function与bind实现剖析

    如何控制调用时占位符位置和区分占位符与传入参数? 首先,需要知道的是,bind函数返回的是一个叫bind_t的模板类。并且这是个可调用对象(重载了operator()操作符)。...在这之中,functor和list内参数个数和类型任意的变化都会导致最终生成的bind_t的类型变化,但是对最外层的bind接口,就把返回值都统一成了bind_t模板。...在bind一个函数或者对象的时候,可以在绑定期(就是调用bind函数的时候)传入一些参数,也可以在执行的时候传入一些参数。...[](p938_07.png) 图7: Boost 1.55.0 的bind执行流程略图 执行流程解决了,最后就剩第三个问题,如何控制调用时占位符位置和区分占位符与传入参数。...使用过boost的bind和function的童鞋应该看到过它里面的一个注意事项,就是如果bind的函数参数是引用类型,应该在执行bind函数时使用引用包装(boost::ref或者std::ref)。

    2.3K10

    std和boost的function与bind实现剖析

    如何控制调用时占位符位置和区分占位符与传入参数? 首先,需要知道的是,bind函数返回的是一个叫bind_t的模板类。并且这是个可调用对象(重载了operator()操作符)。...图1: bind_t 内存结构 bind_t里包含了两个成员,一个用于存可调用的仿函数functor,另一个用于保存执行bind函数时传入的参数列表list。...在这之中,functor和list内参数个数和类型任意的变化都会导致最终生成的bind_t的类型变化,但是对最外层的bind接口,就把返回值都统一成了bind_t模板。...在bind一个函数或者对象的时候,可以在绑定期(就是调用bind函数的时候)传入一些参数,也可以在执行的时候传入一些参数。...图7: Boost 1.55.0 的bind执行流程略图 执行流程解决了,最后就剩第三个问题,如何控制调用时占位符位置和区分占位符与传入参数。

    1.6K30

    JavaScript中apply、call、bind的区别与用法

    语法: fun.call(thisArg, arg1, arg2, ...) 1.3 Function.prototype.bind() bind()方法创建一个新的函数, 当被调用时,将其this关键字设置为提供的值...2.2 call 与apply方法的用法 ? 结果相同,call()和apply(),第一个参数都是要绑定上下文,后面的参数是要传递给调用该方法的函数的。...不同之处在于,在给调用函数传递参数时,apply()是数组,call()参数是逐个列出的。 2.3 bind()的用法 ? bind方法传递给调用函数的参数可以逐个列出,也可以写在数组中。...bind方法与call、apply最大的不同就是前者返回一个绑定上下文的函数,而后两者是直接执行了函数。因此,以上代码也可以这样写: ?...总结bind()的用法:该方法创建一个新函数,称为绑定函数,绑定函数会以创建它时传入bind()的第一个参数作为this,传入bind()的第二个以及以后的参数加上绑定函数运行时本身的参数按照顺序作为原函数的参数来调用原函数

    1.4K20

    包装器 : function 与 bind 的原理及使用

    << f7(move(pd), 1.1, 1.1) << endl; cout << f7(Plus(), 1.1, 1.1) << endl; return 0; } 在C++中,普通成员函数的调用与静态成员函数或普通的非成员函数不同...传入对象指针与传入对象实例的区别 传入对象指针(例如 Plus*):这种情况下,std::function 会调用成员函数时使用传入的指针来绑定 this。... bind在头文件中,std::bind 与function类似,也是⼀个函数模板,同时是一个函数适配器,用于将可调用对象的参数进行绑定或者参数顺序的调整,返回一个新的可调用对象...std::bind 参数的顺序调整与绑定 顺序调整 在 std::bind 中,通过 placeholders 命名空间可以使用 _1、_2 等占位符表示绑定的函数参数。...例如,在实现事件回调时可以使用 std::function 存储回调函数,并用 std::bind 将具体参数与回调绑定。

    73910

    jQuery中find&filter、live&bind对比介绍及图片懒加载

    二. jQuery中绑定事件有三种方法: 以click事件为例 1. target.click(function(){}); 2. target.bind("click",function(){...,下面着重讲解一下,因为这个如果用到Jquery的框架的话是用的挺多的,尤其要注意二者的区别。...bind和live的区别 live方法其实是bind方法的变种,其基本功能就同bind方法的功能是一样的,都是为一个元素绑定某个事件,但是bind方法只能给当前存在的元素绑定事件,对于事后采用JS等方式新生成的元素无效...之所以jquery要保留bind方法而不是采用live方法去替代bind,也是因为live在某些情况下是不能够完全替代bind的。...如下: 1. bind方法可以绑定任何JavaScript的事件,而live方法在jQuery1.3的时候只支持click、dblclick、 keydown、 keypress、 keyup、mousedown

    1.1K31

    std::function与std::bind使用总结

    ::function与std::bind这两件大杀器。...std::function与std::bind双剑合璧 刚才也说道,std::function可以指向类成员函数和函数签名不一样的函数,其实,这两种函数都是一样的,因为类成员函数都有一个默认的参数,this...,作为第一个参数,这就导致了类成员函数不能直接赋值给std::function,这时候我们就需要std::bind了,简言之,std::bind的作用就是转换函数签名,将缺少的参数补上,将多了的参数去掉...的用法就是第一个参数是要被指向的函数的地址,为了区分,这里std::bind语句的左值函数为原函数,右值函数为新函数,那么std::bind方法从第二个参数起,都是新函数所需要的参数,缺一不可,而我们可以使用...值得注意的有两点: 一旦bind补充了缺失的参数,那么以后每次调用这个function时,那些原本缺失的参数都是一样的,举个栗子,上面代码中callback6,我们每次调用它的时候,第二个参数都只会是100

    12K92
    领券