簡體   English   中英

jQuery-同一頁面上的多個版本-中斷功能

[英]JQuery - multiple versions on the same page - breaking functionality

要求在完成加載后在頁面上加載自定義Javascript,即使用第三方工具在頁面加載后在網站的實時頁面上執行。

現在來看這個問題,該頁面上有許多依賴於Javascript的元素,這些元素已使用jquery 1.6.2版進行了編碼。 我需要執行的運行時腳本需要jquery版本1.10.x。 請參見下面的代碼。

$('body').append('<script type="text/javascript" src="http://www.mywebsite.com/min/lib/jquery-1.10.2.js"></script>');
$('body').append('<script type="text/javascript" src="http://www.runtimetool.com/mycustom.js"/>');

一旦應用了第一行代碼,由於現有代碼與Jquery 1.10.x版本的某些沖突,頁面上的原始功能就會中斷。

因此,我嘗試像在其他類似問題上建議的那樣使用noConflict:

$('body').append('<script type="text/javascript" src="http://www.mywebsite.com/min/lib/jquery-1.10.2.js"></script>');
var $j = jQuery.noConflict(true);    
$('body').append('<script type="text/javascript" src="http://www.runtimetool.com/mycustom.js"/>');

另外,我將文件“ mycustom.js”更改為使用$ j代替jquery的$。 但是我仍然有同樣的問題。 如何防止JQuery 1.10.x破壞現有頁面。

提前致謝。

[編輯]

使用Austin的建議,可以調整加載庫的時間。 下面的代碼現在可以工作了。

var $jQuery1_6_2 = jQuery.noConflict(true);
$jQuery1_6_2('body').append('<script type="text/javascript" src="http://www.mywebsite.com/min/lib/jquery-1.10.2.js"></script>');
$jQuery1_6_2('body').append('<script type="text/javascript" src="http://www.runtimetool.com/mycustom.js"/>');
setTimeout(function(){
    $jQuery1_10_2 = jQuery.noConflict(true);
    $ = $jQuery1_6_2;
    jQuery = $jQuery1_6_2;

    //Logic to use Jquery 1.10 using '$jQuery1_10_2'

}, 1000);

嘗試不沖突1.6.2,然后加載新版本,然后將對$的引用重置為1.6.2。

var $jQuery1_6_2 = jQuery.noConflict(true);
(function($) {
    $('body').append('<script type="text/javascript" src="http://www.mywebsite.com/min/lib/jquery-1.10.2.js"></script>');
    $jQuery1_10_2 = jQuery.noConflict(true);
    $('body').append('<script type="text/javascript" src="http://www.runtimetool.com/mycustom.js"/>');
})($jQuery1_6_2);
$ = $jQuery1_6_2;

然后在您的腳本文件中

(function($){

})($jQuery1_10_2);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM