Jquery live() 与 delegate() [重复]

2024-01-30

我在这里和网上其他地方读过一些关于两者之间差异的帖子live() and delegate()。但是我还没有找到我正在寻找的答案(如果这是一个骗局,请告诉我)。

我知道之间的区别live and delegate就是它live不能在链中使用。我也在某处读到过delegate在某些情况下更快(更好的性能)。

我的问题是,在什么情况下你应该使用live代替delegate?

UPDATE

我已经设置了一个简单测试 http://jsperf.com/jquery-live-vs-delegate-vs-on查看性能差异。

我还添加了新的.on()在 jQuery 1.7+ 中可用

结果几乎总结了答案中所述的性能问题。

  • 不要使用.live()除非你的 jQuery 版本不支持.delegate().
  • 不要使用.delegate()除非你的 jQuery 版本不支持.on().

和...之间的不同.live() and .delegate()比两者之间大很多delegate() and .on().


我从不使用live;我考虑使用的好处delegate如此巨大以至于压倒性的。

其好处之一是live是它的语法非常接近bind:

$('a.myClass').live('click', function() { ... });

delegate但是,使用稍微更详细的语法:

$('#containerElement').delegate('a.myClass', 'click', function() { ... });

然而,在我看来,这似乎更明确地说明了实际发生的情况。你没有意识到从live事件实际上被捕获的示例document; with delegate,很明显事件捕获发生在#containerElement。你可以做同样的事情live,但语法变得越来越可怕。

为要捕获的事件指定上下文也可以提高性能。随着live例如,整个文档的每次点击都必须与选择器进行比较a.myClass看看是否匹配。和delegate,这只是其中的元素#containerElement。这显然会提高性能。

最后,live要求您的浏览器寻找a.myClass 目前是否存在. delegate仅在事件触发时查找元素,从而提供进一步的性能优势。


NB delegate uses live在幕后,所以你可以做任何事情live你可以用delegate。我的回答涉及它们,因为它们是常用的。

还要注意的是,两者都不是live nor delegate是现代 jQuery 中进行事件委托的最佳方式。新语法(从 jQuery 1.7 开始)是on http://api.jquery.com/on/功能。语法如下:

$('#containerElement').on('click', 'a.myClass', function() { ... });
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Jquery live() 与 delegate() [重复] 的相关文章

  • 如何制作像Stackoverflow一样的可折叠评论框

    我正在构建一个网站 并且有一个状态更新列表 我希望允许用户为列表中的每个项目撰写评论 但是我正在尝试实现一个类似于堆栈溢出工作方式的用户界面 特别是可折叠的评论表单 列表 用户在其中单击对列表中的特定状态更新添加评论 并且在列表中的该项目下
  • 如何将 webmethod 与 telerik 批量编辑网格一起使用

    Work on Asp net vs2012 C telerik RadGrid batch edit I put save button outside from the grid Under the save button want t
  • 代码点火器 JSON

    你好 我使用 codeigniter 然后我从控制器中的数据库中回显输出 然后在我的视图文件中执行以下操作 但它没有显示任何内容 S 我的模型文件 function forumList this gt db gt select oversk
  • 如何更改引导弹出窗口箭头边框颜色而不填充它?

    我想更改弹出箭头的边框颜色 当我应用边框颜色时 箭头本身填充了颜色 我只想为弹出框主体的箭头边框提供颜色 p Click on button to see Popover p a href class btn btn primary pop
  • 如何用 jQuery 替换击键?

    我需要能够用 jQuery 替换击键 当按下右箭头时 我希望改为按下 Tab 键 到目前为止我有
  • Google 地图 v3 中标准缩放控件的样式

    有没有一种简单的方法可以在 Google Maps JavaScript API v3 中设置缩放控件的样式 我想要的只是改变标准图像 http maps gstatic com intl en ALL mapfiles mapcontro
  • 有不同图像尺寸的缩略图 Bootstrap

    我想要包含不同大小和不同文本量的图像的缩略图 但我希望它们都具有相同的大小 像这样来自 Bootstrap 站点的示例 http getbootstrap com components thumbnails custom content 下
  • 获取 2 个日期之间的月份名称

    我有两个约会from and to 我想获取这两个日期之间的所有月份名称 以下是我的代码 var monthNames January February March April May June July August September
  • 响应式菜单:悬停子菜单显示错误

    简而言之 我根据教程创建了一个响应式菜单 当您将鼠标悬停在投资组合按钮上时 菜单应该显示子菜单 而在移动模式下 您需要按该按钮才能显示子菜单 效果很好 问题是该教程有一个错误 如果您在桌面模式下按组合按钮 子菜单将不会再次显示 除非您按 单
  • 通过jquery传递搜索参数

    我有一个表单 如果用户输入搜索查询 其参数应通过 jquery 传递 并在获取结果后将结果加载到 div 容器中 由于我不太熟悉 jquery 我该怎么做 html currently the data is being displayed
  • 使用 jQuery 和 jQuery UI 运行任何 Jest 测试时出现问题

    所以我有一个名为的开源库Angular Slickgrid https github com ghiscoding Angular Slickgrid还没有测试 我正在尝试使用 Jest 但真的很难使用它 该库是旧的 jQuery 数据网格
  • 具有固定位置的平滑滚动标题

    当我将位置更改为固定时如何创建平滑滚动 我尝试添加动画但不起作用 最好使用jquery动画 window scroll function var sticky mobile menu scroll window scrollTop if s
  • 通过 AJAX 发送 XML

    我在 jQuery 中创建了一个 xml 文档 如下所示 var xmlDocument
  • 标点符号加载“动画”,javascript?

    我正在寻找一种好方法来显示一些标点符号加载 动画 我想要的是这样的 This will display at second 1 Waiting for your input This will display at second 2 Wai
  • 如何在 jQuery 中使用 CSS“background-image”属性添加的图像上绑定单击事件

    这是我的小提琴link http jsbin com otisur 1 edit 我想我的问题通过标题本身就很清楚了 尽管如此 我正在寻找一种绑定的方法click使用 css 添加的图像上的事件background image财产 我知道
  • Javascript:如何根据 html 标签扩展用户选择?

    乐代码 http jsfiddle net frf7w 12 http jsfiddle net frf7w 12 所以现在 当前的方法将完全按照 选择的方式获取所选文本 并添加标签 以便在显示时页面不会爆炸 但我想做的是 就是说 当用户选
  • 使用 jQuery 拖放

    我想使用 jQuery 进行简单的拖放操作 到目前为止我还没有做任何事情 但之前的尝试都没有成功 你有没有尝试过jQuery UI 可拖动 http jqueryui com demos draggable 简单用例 div class u
  • 如何使用javascript隐藏div

    我想使用 Javascript 隐藏一个 div 下面是我的div div class ui dialog titlebar ui widget header ui corner all ui helper clearfix span cl
  • 如何使用 jQuery UI Sortable 正确相交?

    这是我对 jQuery UI Sortable 进行动画处理的尝试 https codepen io anon pen YdMOXE https codepen io anon pen YdMOXE var startIndex chang
  • 使用jquery和coldfusion cffile上传多个文件

    不是一个真正的问题 只是想将其发布在某个地方 因为我在其他地方找不到它 现在我已经拼凑了一个工作演示 我想我会分享 这在 Coldfusion 和 Railo CFML 服务器上同样有 效 问题是 对于 CFML 开发人员来说 CFFILE

随机推荐

  • 为 UIBarButtonItem 设置图像 - 图像拉伸

    当我尝试使用 UIBarButtonItem 的 initWithImage 来初始化导航栏自定义图像时 它会被冲破并拉伸到黑色导航栏上 这就是我创建它的方式 UIBarButtonItem button UIBarButtonItem a
  • 警告:为 foreach() 提供的参数无效

    results mysql query select from classpics foreach results as uno echo td valign middle align center a class neutral href
  • Linux中使用的offsetof

    我正在研究如何在给定结构中找到特定变量的偏移量 我尝试了以下程序 struct info char a int b char c int d struct info myinfo int main int argc char argv st
  • 缓存URL内容

    我有一个非常简单的用例 当远程端的内容发生变化时 例如 当 上次修改 发生变化时 通过正确和自动重新加载来缓存 URL 的内容 我怎样才能在Java中做到这一点 注意 我的类路径上有 spring guava 和 commons lang3
  • 从 ABC 和 django.db.models.Model 继承会引发元类异常

    我正在尝试使用Python 3实现一个Django数据模型类 它也是一个接口类 我这样做的原因是 我正在为我的同事编写一个基类 并且需要他全部实现三个方法他从我的课程中派生出来的 我试图为他提供一种简化的方式来使用我设计的系统的功能 但是
  • 如何让Python Yaml库以人性化的方式保存?

    这是我得到的 Python 代码 d ToGoFirst aaa Second bbb Pagargaph Lorem ipsum dolor sit amet consectetur adipiscing elit sed do eius
  • 每次抽奖都重画不变的背景?

    这可能是一个非常简单的问题 但我搜索后发现没有其他方法可以做到这一点 每次绘制时都重新绘制背景是没有意义的 有没有办法画一些东西并将它们留在屏幕上 我试图注释掉 GraphicsDevice Clear Color CornflowerBl
  • 从另一个应用程序窗口获取焦点控件的句柄

    我有一个应用程序有一些控件 按钮 编辑等 的窗口 我需要模拟用户事件 如 Tab 单击和输入文本 我在用着keybd event在 Tab 键顺序控件 编辑框 之间移动焦点并为其输入文本 但我需要知道当前焦点控件的句柄 例如从中获取文本或更
  • 使用 ASP.NET Web API 并行进行基本身份验证和表单身份验证

    免责声明 首先我要说的是 我是 MVC4 Web Api 一般 Web 服务 JQuery 的新手 我可能从错误的角度攻击这个问题 我正在尝试用 C 为 NET 4 构建一个 Web MVC 应用程序 Web API 以部署在 Azure
  • async_resolve 中的 boost::asio::ip::tcp::resolver::iterator 的生命周期是多少?

    当我打电话时boost asio ip tcp resolver async resolve 我的处理程序收到一个ip tcp resolver iterator迭代一个或多个ip tcp resolver entries 他们的寿命是多少
  • 位列的唯一约束仅允许 1 个真 (1) 值

    我有这张表 CREATE TABLE tblExample ExampleID int IDENTITY 1 1 NOT NULL WordsAndStuff nvarchar max NOT NULL Active bit NOT NUL
  • 如何使 Django sessionId cookie 安全

    这是我目前的sessionIdcookie属性 设置 Cookie sessionid 3jdpjxgepk49vrnhbabdvju3r80ci581 过期 2018 年 8 月 6 日星期一 12 40 14 GMT 仅 Http 最大
  • 通过显示文本查找带有selenium的元素

    我试图将鼠标悬停在带有硒的菜单栏中的元素上 但很难找到该元素 该元素显示如下 div class mainItem TextToFind div 这种类型有多个元素 因此我需要通过以下方式找到该元素TextToFind 我试过了 drive
  • Bootstrap 4:带有徽标和 2 行的导航栏

    我正在尝试使用 Bootstrap 4 创建一个符合下面原理图的网站标题 我用来实现此目的的代码如下 省略了无关代码 div class navbar div class container yellow div class row div
  • 尝试将 Braintree-Web 集成到 Angular2 中

    我正在尝试在我的 Angular2 应用程序中使用 Braintree SDK braintree web 我真的很感激任何有关如何使其发挥作用的指示 我认为这是因为我没有导入 Braintree web 模块 但我也不知道如何导入 我可以
  • 如何删除 HTML 中字符之间的空格?填充不起作用

    即使我将填充添加为 0px 为什么字母 之前有空格 以红色标记 span style margin 0 padding 0 border 1px solid blue font size 48px span That space is pa
  • 这段代码会删除文件扩展名吗?

    这不是我的代码 我想弄清楚这到底是做什么的 这是一个用 C 语言编写的大型古老系统的一部分 实际上它是 4 年前编写的 但很可能是由 80 年代末程序员心态编写的 部分代码 char DestFile 256 char DestFile2
  • Python3 SMTP ValueError:server_hostname 不能为空字符串或以前导点开头

    import smtplib smtp smtplib SMTP smtp connect smtp gmail com 587 220 b smtp gmail com ESMTP h15 v6sm187291iog 48 gsmtp s
  • @IdClass 使用 JPA 和 Hibernate 生成“实例的标识符已更改”

    对于使用不区分大小写的数据库架构的 JPA 实体模型 当我使用 IdClass 注释时 我始终会收到 实例的标识符已更改 异常 对于具有 字符串 主键的对象 当数据库中存在一种大小写的字符串并且使用仅大小写不同的相同字符串执行查询时 会发生
  • Jquery live() 与 delegate() [重复]

    这个问题在这里已经有答案了 我在这里和网上其他地方读过一些关于两者之间差异的帖子live and delegate 但是我还没有找到我正在寻找的答案 如果这是一个骗局 请告诉我 我知道之间的区别live and delegate就是它liv