2

我正在将 jQuery 从 1.12.3 升级到 3.5.1(最新版本)。我的应用程序很大,我们有 jQuery 版本 1.12.3。在 jQuery 迁移脚本的帮助下升级时,遇到了一些技术挑战:

  1. 不能直接从版本 1.xx 升级到 3.xx(显然我们不能清楚地做到这一点,他们在 jQuery 指南中提到。因为大多数 api 在 1.xx 版本中已被弃用)。
  2. 首先出于测试目的,我尝试了带有 3.3.0 迁移脚本的 3.5.1 jQuery。由于我的应用程序被大多数带有 jQ​​uery 版本(1.12.3)的客户端使用,因此它产生了更多的阻塞问题。所以我计划先一步一步迁移到 2.2.4 jQuery 和 1.4.1 迁移。在我的应用程序中,我们为单个模块使用了很多 die() 和 live() 事件,因此我计划为 die() 和 live() 事件制作我们自己的迁移脚本。这是 live() 的代码,它转换为 on()。
jQuery.fn.live = function( types, data, fn ) {
    
    try{
      if(typeof(this.selector) == "undefined" && typeof(this[0].id) != "undefined"){
        this.selector = String("#" + this[0].id);
      }
    }catch(e){
        }   
    if(typeof(this.context) == "undefined"){
        this.context = jQuery(this).parent();
    }
    else{
        this.context = "body";
    }
    jQuery( this.context ).on( types, this.selector, data, fn );
    return this;
};

它运作良好。当对 Die() 使用相同的技术时,它不起作用。因为例如

$(".selector").die().live("click",function(){}).

我们无法获取 die 函数的事件和选择器。所以我放弃了这个选项。有没有其他方法可以通过最少的代码更改来升级 jQuery?

或者

如果我手动更改 on() 和 off() 方法,如何确保事件正常工作而不是手动测试。由于手动代码替换和测试将影响 Web 应用程序开发路线图时间表。

4

0 回答 0