3

我有一个包含 jquery 的第三方脚本(这会导致事情中断)。我使用的是 1.6 版本,而外部脚本使用的是旧版本。

如何强制只加载一个版本的 jquery,它是我在页面上的版本而不是外部加载的版本?

4

2 回答 2

5

这实际上很容易做到,使用 jquery.noConfict();

<script src='jquery-1.6.js'></script>
<script>
var jq16 = jQuery.noConflict();
</script>
<script src='jquery-1.4.2.js'></script>
<script>
var jq142 = jQuery.noConflict();
</script>

然后,您可以让函数使用 $() 命名空间,如下所示:

 (function($) {
$('<button>Use jQuery 1.4.2</button>')
    .click(function() {
        alert('Top: ' + $(this).offset().top + '\n' +
            'jQuery: ' + $.fn.jquery);
    })
    .appendTo('body');
})(jq142);

此页面上有一个更详细的示例和一些额外的提示。

于 2011-06-07T22:16:01.097 回答
1

使用.noConflict()代替?
例如:
<head>在 HTML 文档里面有这个:

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.6/jquery.min.js"></script>
<script type="text/javascript">
jQuery.noConflict()
jQuery16 = jQuery
</script>

在我的 jQ 脚本中,我将其称为:

jQuery16(document).ready(function($){


$('.textarea').text(' Hello World! ');



});

这样做我确信我的脚本不会干扰使用其他/旧版本 jQuery 的外部。

于 2011-06-07T22:17:29.143 回答