Dav*_*ell 21 javascript jquery
我无法解决这个问题.我的上帝让我的大脑受伤了,所以我转向你,互联网上的好人.
我一直在盯着jQuery $.noConflict()函数的文档而没有运气.
我的问题是我正在开发的网站已经包含了jQuery 1.1.3.1,但我想在一些地方做一些非常棒的时髦用户界面工作,所以我想使用1.4.2,原因很明显.
我一直试图并排运行这些,但我似乎无法获得任何代码来执行.我还需要使用1.4.2实现了几个插件,所以我不知道,如果把在jQuery的喜欢的东西$j会的工作,因为很明显,插件会拿起$和jQuery作为1.1.3.1,而不是1.4.2.
有没有办法可以将我的代码包装在一个noConflict()块中,还包括我需要创建自包含1.4.2代码块的插件?
任何帮助都会很棒,因为我的可怜的头脑在API文档的广阔荒地中哭泣!
小智 27
如果你在同一个页面中有两个或三个jQuery,只需为每个不同的jQuery添加一个不同的变量.
例:
<script type="text/javascript">
var $s = jQuery.noConflict();
$s(document).ready(function() {
$s('#news-container').vTicker({
speed: 500,
pause: 3000,
animation: 'fade',
mousePause: true,
showItems: 2
});
});
</script>
<script type="text/javascript">
var $j = jQuery.noConflict();
$j(document).ready(function() {
$j('.sf-menu ul').superfish({
delay: 1000,
animation: {
opacity: 'show',
height: 'show'
},
speed: 'medium',
autoArrows: false,
dropShadows: 'medium'
});
});
</script>
Run Code Online (Sandbox Code Playgroud)
您只需将整个站点升级到1.4.2即可.
jQuery通常不会有很多重大变化,因此不应该这么难.
我最近有一个类似的问题,我在一个页面上使用jQuery v1.3.2,但第三方问卷弹出窗口在同一页面上使用旧版本.我最终设法解决了这个问题.我引用了jQuery 1.3.2如下:
<script type="text/javascript" src"/Scripts/jquery-1.3.2.min.js"></script>
<script type="text/javascript">
jq132 = jQuery.noConflict(true);
</script>
Run Code Online (Sandbox Code Playgroud)
然后我修改了我的所有jQuery代码以使用jq132而不是$.然后我在我用来替换"$("和"jq132("和"$."和"jq132"的所有插件上找到并替换.可能有更优雅的方法,但这对我有用.我远离jQuery专家,因此可能需要处理其他$语法(即不只是"."和"(").).
| 归档时间: |
|
| 查看次数: |
29221 次 |
| 最近记录: |