首页 > web前端 > js教程 > 为什么升级到版本 2.1 后 jQuery 的 .live() 不起作用,如何修复它?

为什么升级到版本 2.1 后 jQuery 的 .live() 不起作用,如何修复它?

Mary-Kate Olsen
发布: 2024-11-23 18:05:17
原创
705 人浏览过

Why Doesn't jQuery's .live() Work After Upgrading to Version 2.1, and How Can I Fix It?

jQuery .live() 弃用

问题:

将 jQuery 升级到版本 2.1,.live() 功能已停止工作,导致“TypeError: $(...).live is not a function”错误。

原因:

.live() 方法在 jQuery 版本 1.9 中已弃用由于性能和架构问题,随后在 2.1 版本中删除了。

解决方案:迁移到.on()

要替换 .live() 的功能,jQuery 建议迁移到 .on() 方法。不过,需要注意的是 .on() 的语法与 .live() 不同。

迁移指南:

  1. 替换 live具有命名事件类型的事件: .live('click', function) 变为 .on('click', 选择器, function)。
  2. 将子选择器移动到 .on() 选择器: .live('.myElement', function) 变为 .on('click', '.myElement',
  3. 确保目标元素位于委托父元素内:为子选择器选择合适的父元素,最好是有身份证。如果没有可用的,请使用 $(document) 作为委托父级。

迁移示例:

示例 1:

Before: $('#mainmenu a').live('click', function)
After: $('#mainmenu').on('click', 'a', function)
登录后复制

示例2:

Before: $('.myButton').live('click', function)
After: $('#parentElement').on('click', '.myButton', function) or $(document).on('click', '.myButton', function) if no suitable parent is known
登录后复制

其他资源:

  • jQuery - 如何使用“on()”方法而不是“live()” ”?
  • jQuery 1.9 迁移指南

以上是为什么升级到版本 2.1 后 jQuery 的 .live() 不起作用,如何修复它?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板