gpt4 book ai didi

jquery - jQuery.live 的替代品是什么

转载 作者:行者123 更新时间:2023-12-03 22:48:07 27 4
gpt4 key购买 nike

什么应该是 jQuery.live() 的正确替代品。我知道 jQuery.on() 做同样的事情,但是对于 jQuery.on() 我们必须指定父级才能使其工作。

假设我的页面上有 500 个 live,现在我想将所有 500 个 live 更改为 on,通过选择每个元素的父元素来完成此操作是不可行的,并且需要更多时间。

假设我有 $(".item").live("click",function(){alert("test"); });

如果我用 jQuery.on() 替换它,那么它应该是 $("body").on("click",".item",function(){alert("test"); });

但我想知道是否有一些捷径或其他方法可以实现这样的目的

$(".item").on("click",function(){ alert("test"); });

这样我就可以在几秒钟内更换所有内容。

最佳答案

.live()死了,万岁.live() : https://github.com/jquery/jquery/commit/eed78cc321ed7e2b37fb34e32fbb528b24f61d6e

虽然说真的,对于您想要的俏皮话,您可以将其添加回来:

jQuery.fn.live = function( types, data, fn ) { jQuery( this.context ).on( types, this.selector, data, fn ); return this; }

将其添加到 JS 的顶部以有效创建一个垫片,该垫片将允许您使用 .live()如您所愿,而不关心您使用的是哪个版本的 jQuery。

但实际上,就像其他人所说的那样,您应该使用您选择的文本编辑器或像 sed 这样的命令行实用程序执行查找替换操作。在我给您的填充解决方案中,您正在调用一个函数来调用另一个函数,这会带来大量开销,并且可能会使用不必要的资源量。 .on()效率更高,特别是直接调用它时。

<小时/>

更新:上述解决方案依赖于jQuery内部.context属性(property),其中has been deprecated自 jQuery 1.10 起,可能会在任何后续版本中消失。 大多数时候应该满足您的需求的替代版本是简单地替换 this.contextdocument 。这具有 .context property's API 中概述的限制:

The value of this property is typically equal to document, as this is the default context for jQuery objects if none is supplied. The context may differ if, for example, the object was created by searching within an <iframe> or XML document.

所以它可能会失败。不管怎样,现在你绝对没有理由不使用 .on()直接地。欢迎查看my tips on upgrading to the most recent version of jQuery .

关于jquery - jQuery.live 的替代品是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15333147/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com