asp.net - 如何在同一页面上运行不同版本的 jQuery?

标签 asp.net javascript jquery

我的公司购买了一种在页面上呈现 ASP.NET 控件的产品。此控件使用 jQuery 1.2.3 并在页面中添加脚本标记以引用它。如果以任何方式修改控件(包括修改以引用不同版本的 jQuery),控件的开发人员将不支持使用该控件。

我即将开始开发自己的控件,并希望使用 jQuery 1.3 的功能和速度改进。这两个控件都需要存在于同一页面上。

如何让购买的控件使用 jQuery 1.2.3 而新的自定义开发使用 jQuery 1.3?同样出于好奇,如果我们要使用一个额外的控件来引用另一个版本的 jQuery 怎么办?

最佳答案

您可以通过在 no-conflict mode 中运行您的 jQuery 版本来实现此目的. “无冲突”模式是让 jQuery 在页面上与其他框架(如 prototype)一起工作的典型解决方案。 , 并且也可以在这里使用,因为它本质上为您加载的每个版本的 jQuery 命名空间。

<script src="jQuery1.3.js"></script>
<script>
    jq13 = jQuery.noConflict(true);
</script>

<!-- original author's jquery version -->
<script src="jQuery1.2.3.js"></script>

此更改意味着您要使用的任何 jQuery 内容都需要使用 jq13 而不是 $ 来调用,例如

jq13("#id").hide();

让两个版本在同一个页面上运行不是一个理想的情况,但如果您别无选择,那么上述方法应该允许您同时使用两个不同的版本。

Also out of curiosity, what if we were to use an additional control that needed to reference yet another version of jQuery?

如果您需要添加另一个版本的 jQuery,您可以在上面进行扩展:

<script src="jQuery1.3.js"></script>
<script>
    jq13 = jQuery.noConflict(true);
</script>
<script src="jQuery1.3.1.js"></script>
<script>
    jq131 = jQuery.noConflict(true);
</script>

<!-- original author's jquery version -->
<script src="jQuery1.2.3.js"></script>

变量 jq13jq131 将分别用于您需要的特定于版本的功能。

重要的是 原始开发人员使用的 jQuery 最后加载 - 原始开发人员编写代码时可能假设 $() 将使用他们的 jQuery版本。如果您在他们之后加载另一个版本,$ 将被您加载的最后一个版本“抢走”,这意味着原始开发人员的代码在最新的库版本上运行,呈现 noConflicts 有点多余!

关于asp.net - 如何在同一页面上运行不同版本的 jQuery?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/528241/

相关文章:

javascript - 页面上的一个按钮不会调用后面的代码,其他按钮可以

c# - 如何检查 Razor 模板中的模型中的属性是否可用?

c# - 如何在 MVC Controller 操作后返回 View ?

javascript - 如何将 Node.js 异步流回调转换为异步生成器?

javascript - jQuery .data() 火狐浏览器

ASP.NET HttpContext.Current 在 Task.Run 中

javascript - HTML5 Canvas 缩放/缩放更大 2D 世界的 View 框?

javascript - 为什么 then() 链式方法没有按顺序运行?

javascript - 使用 Ajax 发送表单 - Spring MVC

javascript - html 中的 xml 从 javascript/jquery 读取