gpt4 book ai didi

jQuery 升级、.attr 和 .prop - 1.2.6 到 1.9.1

转载 作者:行者123 更新时间:2023-12-03 23:04:35 25 4
gpt4 key购买 nike

我正在尝试将工作中的大量站点从非常旧的 jQuery 版本(1.2.6、1.4.3)升级到最新版本(1.9.1)。事情进展顺利 - 迁移脚本完成了大部分跑腿工作,尽管这只适用于 1.6.4 到 1.9.1,我想我已经完成了大部分需要排序的其他更改。

我遇到了一些问题,主要的一个是从 .attr().prop() 的更改 - 正如所有我们的代码使用 .attr() ,如果我们只是将其更改为使用 .prop(),则会出现一些中断,特别是一些用于过滤商店中的产品的链接 - 这些链接会调用 AJAX 调用并执行其他处理被点击时。

我最初的“修复”(用非常大的空引号)是基于简单地将调用从一个重定向到另一个:

$.fn.attr = $.fn.prop;

我确信这会带来一大堆错误,尽管它修复了最初被破坏的问题。从那时起,我只注意到它引起的另一个错误(无论如何,到目前为止),即它导致 href 属性(可能是以 # 开头的 anchor )返回完整的标准化 URL - http://jsfiddle.net/eT6xE/1/

<a href="#something"><span>Product Details</span></a>
<div></div>

$('div').append( $('a').attr('href') );
$('div').append( '<br />' + $('a').prop('href') );
// #something \n http://fiddle.jshell.net/eT6xE/1/show/#something

鉴于这是我注意到的唯一错误,我尝试了一下并想出了一个解决方法 - http://jsfiddle.net/M92CE/1/ - 这似乎有助于重新引入原始功能。尽管这对于 href attr/prop 问题来说似乎是一个相当干净的解决方案,但我忍不住觉得最初的修复......距离它可能的目标还有很长的路要走。

是否有任何“标准”方法可以重新引入此功能,如果没有,是否有更好的方法?

干杯。

最佳答案

jQuery 1.9 删除了很多以前版本中已弃用的旧功能。正如您所发现的,从 jQuery 1.2 迁移到 1.9,您几乎肯定会遇到很多问题。

幸运的是,jQuery 1.9 有一个名为 jQuery Migrate 的配套库。为了向后兼容旧版本,这将恢复 1.9 中删除的所有旧的已弃用功能。

如果您需要恢复旧代码并使用最新的 jQuery 版本运行,请使用 jQuery Migrate 使其正常工作。

但是,请记住,Migrate 库的目的是帮助您过渡到新功能,而不是让您的代码停留在过去。因此,请使用 Migrate 使代码正常工作,但随后您需要开始考虑更改代码,以便不需要 Migrate。

这可能是一项相当大的工作,具体取决于您拥有的代码量,但是使用 Migrate 可以让您逐一进行这些更改,而不必一次修复所有内容。

希望有帮助。

关于jQuery 升级、.attr 和 .prop - 1.2.6 到 1.9.1,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16014534/

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