Ale*_*gas 68 javascript asp.net jquery
我的公司购买了一个在页面上呈现ASP.NET控件的产品.此控件使用jQuery 1.2.3并向页面添加脚本标记以引用它.如果以任何方式修改控件(包括修改引用不同版本的jQuery),控件的开发人员将不支持使用该控件.
我即将开始开发自己的控件,并希望使用jQuery 1.3的功能和速度改进.这两个控件都需要存在于同一页面上.
如何让购买的控件使用jQuery 1.2.3和新的自定义开发来使用jQuery 1.3?出于好奇,如果我们使用另外一个需要引用另一个版本的jQuery的控件怎么办?
Con*_*oyP 100
您可以通过在无冲突模式下运行您的jQuery版本来实现此目的."没有冲突"模式是让jQuery在其他框架(如原型)上运行的典型解决方案,也可以在这里使用,因为它本质上是你加载的每个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>
Run Code Online (Sandbox Code Playgroud)
这个改变意味着你想要使用的任何jQuery东西都需要使用jq13而不是$,例如
jq13("#id").hide();
Run Code Online (Sandbox Code Playgroud)
让两个版本在同一页面上运行并不理想,但如果你别无选择,那么上面的方法应该允许你一次使用两个不同的版本.
出于好奇,如果我们使用另外一个需要引用另一个版本的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>
Run Code Online (Sandbox Code Playgroud)
变量jq13和jq131将各自用于您所需要的特定版本的功能.
重要的是原始开发人员使用的jQuery最后加载 - 原始开发人员可能$()在使用他们的jQuery版本的假设下编写他们的代码.如果你在他们之后加载另一个版本,那么你将加载$最后一个版本"抓住",这意味着原始开发人员的代码在最新的库版本上运行,这noConflicts有点多余!
Tig*_*yan 24
正如所说的ConroyP你可以这样做jQuery.noConflict但不要忘记var在声明变量时.像这样.
<script src="jQuery1.3.js"></script>
<script>
var jq13 = jQuery.noConflict(true);
</script>
<!-- original author's jquery version -->
<script src="jQuery1.2.3.js"></script>
Run Code Online (Sandbox Code Playgroud)
您可以通过在函数后添加(jq13)将所有$连接到jq13 }).像这样
(function($) {
...
})(jq13);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
35322 次 |
| 最近记录: |