如何在同一页面上加载多个版本的 jQuery 插件?

2024-01-08

我正在尝试使用最新版本的时间选择器插件 http://trentrichardson.com/examples/timepicker/用于 jQuery UI。

另一个库已经在早期版本加载了它(1.0.4)但我想使用最新的(1.4.5) 版本。

在源码中 https://github.com/trentrichardson/jQuery-Timepicker-Addon/blob/master/src/jquery-ui-timepicker-addon.js,插件在继续之前检查是否已经加载:

$.ui.timepicker = $.ui.timepicker || {};
if ($.ui.timepicker.version) {
    return;
}

我做了很多搜索方法来做到这一点,但没有找到任何有用的东西。我确实看到可以使用以下方法在页面上加载多个版本的 jQuerynoConflict然后将其附加到不同版本的 jQuery,但我认为应该有一种更简单的方法。

我尝试了一下,它不起作用 - 我认为因为变量被引用,它们可能需要实例化 - 我不是 JS 专家,但至少我正在尝试:

// jQuery, jQueryUi, and the 1.0.4 version loaded beforehand

<script>
    var _old_jquery_ui_timepicker = jQuery.ui.timepicker;
    var _old_jquery_ui_timepicker_function = jQuery.fn.datetimepicker;
    jQuery.ui.timepicker = null;
</script>

<script src="//cdnjs.cloudflare.com/ajax/libs/jquery-ui-timepicker-addon/1.4.5/jquery-ui-timepicker-addon.min.js"></script>

<script>

    jQuery.ui.mytimepicker = jQuery.ui.timepicker;
    jQuery.ui.timepicker = _old_jquery_ui_timepicker;

    jQuery.fn.mydatetimepicker = jQuery.fn.datetimepicker;
    jQuery.fn.datetimepicker = _old_jquery_ui_timepicker_function;

</script>

编写该代码感觉很脏,而且它又不起作用。因此,在没有任何运气之后,我尝试进行更多搜索,但仍然没有找到任何结果。我尝试寻找:

  • 在同一页面上加载多个 jQuery 插件版本
  • jQuery 插件无冲突
  • 在不同的命名空间中加载 jQuery 插件
  • 在不同的域中加载 jQuery 插件
  • 在不同的上下文中加载 jQuery 插件

这做起来简单吗,我只是没有在寻找或正确的事情,还是不可能?

为什么我要尝试这个

我需要新版本的时间选择器的功能,但我不希望我的代码在更新或替换其他库时中断。

  • 该网络应用程序正在使用一个(非 jquery)插件,该插件具有依赖于早期版本的大型代码库(1.0.4) 的时间选择器插件
  • 这不是我更新其他插件的代码库的地方
  • 我不想编写依赖于早期版本的代码(1.0.4)的 timepicker 插件,因为将依赖于其他代码库来加载旧版本(并且在更新时可能会中断)

所以,我同意使用两个版本的 jQuery 插件并不理想。但是,我确实需要添加 jQuery timepicker 插件更高版本的功能。我相信可以做到这一点,也许可以通过 Javascript 的原型设计和继承,而不必“破解它”正如 @Oliboy50 建议对插件源代码进行查找和替换。

有没有 Javascript 专业人士可以演示如何做到这一点(即使它并不理想)?

请注意:是的,我们已经确定尝试这样做“是一个坏主意”,但原则上我想知道 Javascript 的原型语言是否允许这样做。noconflict(即加载多个版本的 jQuery)已经在评论和答案中提到。虽然这“可行”,但这不是我正在寻找的答案。此外,使用查找和替换修改插件源代码也不是一个真正优雅的解决方案。


我认为使用两个不同版本的插件已经是一件坏事了。所以我想你不会介意你的解决方案是更改插件的名称。

在这个jsfiddle中(http://jsfiddle.net/RVyKM/ http://jsfiddle.net/RVyKM/),我替换了(我认为)timepicker with timepickertwo and datetimepicker with datetimepickertwo。因此,您可以使用旧的 timepicker 插件版本 1.0.4 和新的 timepickertwo 插件版本 1.4.5...

但请注意,这是一个坏主意,恕我直言。

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

如何在同一页面上加载多个版本的 jQuery 插件? 的相关文章

随机推荐

  • 打印大文本时,文本行被水平切成两半

    我有一个 div 偶尔包含很长的文本 一个 div 中不止一页 这需要打印 并且在打印时 当页面制动时 某些行会被水平分割 尝试了我在 Stack Overflow 和其他来源上能找到的所有内容 我已经尝试了分页符的所有组合 尝试将正文边距
  • 对于带有非 TextView 视图的 ExpandableListView 使用什么适配器?

    我有一个 ExpandableListView 我想在其中包含 TextView 以外的控件 显然 SimpleExandableListViewAdapter 假定所有控件都是 TextView 如果不是 则会生成强制转换异常 推荐的解决
  • 将 NSAttributedString 和 NSTextAttachment 保存到文件中。如何?

    我有一个NSTextView 其中可能包含富文本或带有图像的富文本NSTextAttachment 我添加附件的方法如下 NSImage image NSImage imageNamed image NSTextAttachmentCell
  • 导航栏上有超过 1 个 rightBarButtonItem

    我想在导航栏上有两个 rightBarButtonItems 一个用于编辑 另一个用于添加 显然我无法使用 Interface Builder 来实现它 有人知道如何以编程方式做到这一点吗 谢谢 它现在包含在 iOS 5 中 称为 righ
  • ForkJoinPool#awaitQuithesis 实际上是如何工作的?

    我有下一个实施RecursiveAction 此类的唯一目的 是从 0 到 9 打印 但如果可能的话 从不同的线程打印 public class MyRecursiveAction extends RecursiveAction priva
  • 有没有办法使用 facebook graphQL 接收扁平化数据?

    我刚刚发现 还有像 GraphQL 这样神奇的东西 我很好奇使用这个时是否有任何方法 fields id name description place name location city cover source 得到这个 id 1001
  • 保护 Firestore 中的特定文档字段

    我正在尝试创建一个简单的系统 允许用户使用他们提供的信息创建帐户 现在 我将所有数据存储在一个集合中users其中有一些代表用户的文档 我想保留用户的一些敏感数据 例如电子邮件地址和电话号码 在 Firebase 数据库中 我会创建如下内容
  • 按 Soundex(或类似)“亲密程度”排序

    有什么方法可以让 MySQL 根据结果与搜索词的 听起来 接近程度来对结果进行排序吗 我正在尝试对包含用户输入的城市名称的字段进行排序 存在变体和拼写错误 我想在顶部显示 最接近 的匹配项 我知道 soundex 可能不是最好的算法 但如果
  • 从命令行安装驱动程序 (.inf) 文件

    我正在 Windows 8 1 中工作 我需要安装驱动程序文件 inf文件 从命令行 我需要使用哪个命令 我知道我还有很多其他方法来安装 inf文件 但我必须从命令行安装它 请帮我 提前致谢 Granger 的评论也适用于 Windows
  • Apache Kafka - 主题/分区上的 KafkaStream

    我正在为大容量高速分布式应用程序编写 Kafka Consumer 我只有一个主题 但收到的消息率非常高 拥有多个分区来服务更多消费者将适合此用例 最好的消费方式是拥有多个流读取器 根据文档或可用示例 ConsumerConnector 给
  • 如何为 Android 支持库启用 javadoc?

    当使用 Android 支持库来实现兼容性并尝试查看 javadoc 时 例如 FragmentTransaction 我收到以下错误 因为没有关联的 javadoc 文件 android support v4 app FragmentTr
  • 如何使用 JSTL 对表示 URL 路径的字符串进行编码?

    使用 JSTL 对表示 URL 路径 而不是请求参数 的字符串进行 URL 编码的最佳方法是什么
  • Django 模型、信号和电子邮件发送延迟

    我已经向我的模型添加了一个信号 一旦保存模型 通过models signals post save connect信号和send mail用于发送电子邮件 这个想法仍然会给用户带来延迟 当他们在网站上保存模型时 他们必须等到所有这些电子邮件
  • 如何通过 UiPath 读取 Excel 工作表并将单元格值放入不同的文本字段中?

    如何通过 UiPath 读取 Excel 工作表并将单元格值放入不同的文本字段中 我有一张Excel表格 如下 我已阅读 Excel 内容并稍后迭代内容 我将内容存储在Output Data Table如下 读取范围 输出 数据表 CV数据
  • pyhive、sqlalchemy无法连接到hadoop沙箱

    我已经安装了 pip install thrift pip install PyHive pip install thrift sasl 和 自从pip install sasl我下载失败sasl 0 2 1 cp27 cp27m win
  • abs(unsigned long) 有任何意义吗?

    我遇到过这段代码 我的分析器偶然将其报告为瓶颈 include
  • MVC 3 在哪里加密用户的密码?

    我有自己的密码加密 dll 用于在用户登录时检查用户的密码 这在我的用户实体中引用 现在我已经为用户创建了注册功能 除了密码尚未加密之外 该功能运行良好 我的问题很简单 我应该把新用户密码的加密放在哪里 我不确定 因为我知道用户的密码不应该
  • 我应该在注入的 Angular 服务上使用只读而不是公开它们吗?

    今天我进行了一次讨论 我的一些同事说他们像这样注入 Angular 服务 constructor readonly language I18nService 他们说他们这样做是因为它可以防止我的组件的使用者更改注入的服务 有点像这样 Com
  • Python 类构造函数(静态)

    Python 是否有类构造函数的机制 即每当首次引用类时 而不是创建该对象的实例时 调用的函数 我知道这在其他一些语言中也存在 但我还没有在Python中遇到过 基本上 我想初始化该函数中的一些静态属性 我在下面举了一个我所期望的例子 当然
  • 如何在同一页面上加载多个版本的 jQuery 插件?

    我正在尝试使用最新版本的时间选择器插件 http trentrichardson com examples timepicker 用于 jQuery UI 另一个库已经在早期版本加载了它 1 0 4 但我想使用最新的 1 4 5 版本 在源