1

可能重复:
我可以在同一页面上使用多个版本的 jQuery 吗?

我在使用 1.2.4 的网站中添加了一些新的 javascript 代码。我现在添加的代码需要 1.8.2 版本。

所以,这是我的代码:

var thisPageUsingOtherJSLibrary = false;

if (typeof jQuery == 'undefined' || jQuery.fn.jquery !== '1.8.2') {
    if (typeof $ == 'function') {
        thisPageUsingOtherJSLibrary = true;
    }

    function getScript(url, success) {
        var script = document.createElement('script');
        script.src = url;

        var head = document.getElementsByTagName('head')[0];

        done = false;
        script.onload = script.onreadystatechange = function () {
            if (!done && (!this.readyState || this.readyState == 'loaded' || this.readyState == 'complete')) {
                done = true;
                success();
                script.onload = script.onreadystatechange = null;
                head.removeChild(script);
            };
        };

        head.appendChild(script);
    };

    getScript('http://code.jquery.com/jquery-1.8.2.min.js', function () {
        if (typeof jQuery !== 'undefined') {
            if (!thisPageUsingOtherJSLibrary) {
                jQuery(document).ready(function ($) {
                    initWithNewJquery($);
                });
            } else {
                var jQuery_1_8_2 = $.noConflict(true);
                jQuery_1_8_2(document).ready(function ($) {
                    initWithNewJquery($);
                });
            }
        }
    });

} else {
    jQuery(document).ready(function ($) {
        initWithNewJquery($);
    });
}

function initWithNewJquery($){

}

我需要的是:在我添加代码的网站上使用旧的 jquery。将新的 jquery 用于我的新函数/处理程序(将添加到 function 中initWithNewJquery($))。

由于某些原因,我认为我写的代码是错误的,也因为我得到了这个错误:

TypeError: a.livequery is not a function

那么,这里应该如何正确使用noConflict()呢?

4

0 回答 0