如何在同一页面上加载多个版本的 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 插件? 的相关文章

  • Instagram 粉丝计数 - 使用 jQuery / json 和 PHP

    经过几个小时的工作和一些帮助萨希尔 米塔尔我们已经成功使用 jQuery json 和 PHP 检索 Instagram 关注者计数 这是我们设法整理的内容 希望对其他想要获取 Instagram 信息的人有所帮助 我们的 jQuery I
  • 在版本 4.4.6 中禁用 ckeditor 上下文菜单

    我在 Rails4 项目中使用 ckeditor 我尝试了 ckeditor gem 和 ckeditor rails gem 来提供 ckeditor 库 这里有多个帖子 人们希望删除 ckeditor 上下文菜单 以便可以显示本机浏览器
  • 通过 JavaScript 获取表单名称

    我有一个简单的问题 但我在网上找不到好的解决方案 我有这个 HTML 代码
  • 如何在React Native Android中获取响应头?

    您好 我想在获取 POST 请求后获取响应标头 我尝试调试看看里面有什么response with console log response 我可以从以下位置获取响应机构responseData但我不知道如何获取标题 我想同时获得标题和正文
  • 如何使用javascript确保元素仅在圆上朝一个方向移动?

    好吧 我承认我对三角学真的很糟糕 出于上下文的考虑 我将添加我在这里提到的问题中的内容 参考问题 https stackoverflow com a 39429290 168492 https stackoverflow com a 394
  • IntersectionObserver是否支持水平滚动观察?

    我制作了几个垂直滚动 IntersectionObserver 模块 但我对水平滚动感兴趣 根将是 div 观察目标将是 img 我想观察当 img 放大但 div 保持视口宽度时的变化 我什至不确定移动 Safari 是否会将缩放后的图片
  • jquery datepicker 动画选项不起作用

    我有一个文本框 其中注册了 JQuery UI DatePicker 控件 它工作正常 但当我尝试添加动画选项时 控件本身不起作用
  • 按下回车键时不刷新页面

    我遇到了一些问题 只要表单中有输入 回车键就会触发页面刷新 下面的代码 如果按下回车并且文本区域 input 中没有输入任何文本 则不会刷新页面 但是如果按下回车并且 input中有输入或者光标位于文本区域 我不确定是什么触发了它 因为 s
  • JavaScript推送函数中的动态变量

    我在 JavaScript 中使用推送功能 var chartData for var i 0 i lt 3 i chartData push date new Date year s mon s date s hr s min s sec
  • 如何使用角度材料在具有可扩展行的表格中创建嵌套垫表

    我有以下数据 id c9d5ab1a subdomain wing domain aircraft part id c9d5ab1a info mimetype application json info dependent parent
  • 计算三次贝塞尔曲线的弧长、曲线长度。为什么不工作?

    我正在用这个算法计算弧长 三次贝塞尔曲线的长度 function getArcLength path var STEPS 1000 gt precision var t 1 STEPS var aX 0 var aY 0 var bX 0
  • onclick 事件中未调用函数

    我想在每个 YouTube 链接的末尾添加一些 HTML 以在 litebox 中打开播放器 到目前为止 这是我的代码 document ready function var valid url new RegExp youtube com
  • 将 Firebase 云消息传递与 Windows 应用程序结合使用

    我在 Android 和 iOS 应用程序中使用 Firebase Cloud Messaging 但是我还有此应用程序的 Windows Mac OS 版本 我想保留相同的逻辑 我知道 Firebase Cloud Messaging 可
  • LeafleteachLayer函数不会迭代所有Layer

    使用 GeoJSON 数据数组创建一些标记 getJSON GetLocationsServlet function data L geoJSON data onEachFeature onEachFeature addTo mymap G
  • 聆听 Angular 2 中的元素可见性

    我正在为我的网络应用程序使用 Bootstrap 和 Angular 2 v4 我想监听指令中的元素以了解可见性变化 我的元素有一个可以隐藏其子元素的父元素hidden sm up我需要在每次隐藏或显示时触发一个函数 div hidden
  • 如何使用 JavaScript 或 jQuery 克隆 HTML 元素的样式对象?

    我正在尝试克隆元素的样式对象 这应该允许我在更改后重置所述元素的样式 例如 el style left 50px curr style left 50px Modify the elements style The cloned style
  • 如何从浏览器向服务器发送“页面将关闭”消息?

    我想向每个 html 文档添加一个脚本 JavaScript 该脚本向服务器发送两条消息 页面确实打开了 页面将关闭 此消息包含页面打开的时间 打开消息应在文档加载时 或加载完成时 发送 这是简单的部分 The close message
  • 如何通过索引访问 JSON 对象中的字段

    我知道这不是最好的方法 但我别无选择 我必须通过索引访问 JSONObject 中的项目 访问对象的标准方法是只写this objectName or this objectName 我还找到了一种获取 json 对象内所有字段的方法 fo
  • 测量窗口偏移

    有没有一种方法可以测量 jQuery 中窗口的偏移量 以便我可以比较 固定 元素和相对定位元素的位置 我需要能够知道窗口滚动了多远 以便我可以使用该图来计算固定元素的高度 相对于视口顶部 和相对对象的高度 相对于顶部 之间的差异文件的内容
  • 使用velocity.js制作可拖动元素的动画

    我正在使用velocity js 为用户拖动的可拖动 SVG 元素设置动画 然而 velocity js 将先前的 mousemove 坐标排队并通过所有后续的 mousemove 坐标进行动画处理 我想要的是velocity js 不要对

随机推荐

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

    我有一个 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 版本 在源