2012-07-09 63 views
0

我採取2臺功能如下: -多jQuery的noConflict文件

對於Windows代 - 必需的jQuery庫是: - 的jquery.js(V1.3.2) - jQuery的ui.js(V1 .7.2)

我使用了一個擴展庫here - 它使用$ .window {...}創建一個基於jQuery的對話窗口。

對於自動填充/插件搜索, - 將所需的庫,我使用是: - 的jquery.js(V1.7.2) - jQuery的ui.js(v1.8.18)

這些二,分別,工作非常好。但是,當在同一頁面上使用時,我必須創建noconflict文件,以便這兩個函數在兩者之間的某個地方相遇。因此,就目前而言,我使用:

  • 的jquery.js(V1.3.2)
  • 的jquery.js(V1.7.2)
  • jQuery的ui.js(V1.8.1)

爲:

<script type="text/javascript" src="http://code.jquery.com/jquery-1.7.2.js"></script> 
<script type="text/javascript" src="http://jqueryui.com/ui/jquery.ui.autocomplete.js"></script> 
<script type="text/javascript" src="http://code.jquery.com/jquery-1.3.2.js"></script> 
<script type="text/javascript"> 
    var jQuery_1_3_2 = $.noConflict(true); 
</script> 

<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.8.1/jquery-ui.js"></script> 

/* Here I would like to use the script below with another noConflict, because v1.8.1 (above) causes flickering of dialog boxes while dragging around & isnt smooth like the one below, which is v1.7.2:- 
<script type="text/javascript" src="http://fstoke.me/jquery/window/js/jquery/jquery-ui.js"></script> 
*/ 

<script type="text/javascript" src="http://fstoke.me/jquery/window/js/jquery/window/jquery.window.js"></script> 

當像上面所使用的,與窗口交互時有視覺毛刺的公平量。在移動窗口時,通常頁面的其他部分會突出顯示或閃爍(快速突出顯示) - 大約有50%的時間。調整大小並不是很順利。

如果我刪除了v1.7.2 jquery.js,那麼窗口會更順暢,但自動​​完成功能會停止工作。如果我刪除了v1.3.2 jquery.js,則不會生成窗口。

現在,我用的功能,如: -

function createSampleWindow() { 
sampleWnd = $.window({ 
.......//Code here 
}(jQuery_1_3_2); 

我如何在這裏使用V1.7.2 jQuery的ui.js也使用一些變量,如: -

<script type="text/javascript" src="http://fstoke.me/jquery/window/js/jquery/jquery-ui.js"></script> 
<script type="text/javascript"> 
    var jq_172= $.noConflict(true); 
</script> 

Qn 1使用這兩個變量的正確語法 - jQuery_1_3_2 AND jq_172 - 對於相同的函數?東西是used here,如: -

function createSampleWindow() { 
sampleWnd = $.window({ 
.......//Code here 
}(jQuery_1_3_2, jq_172); 

或者

function createSampleWindow() { 
sampleWnd = $.window({ 
.......//Code here 
}(jQuery_1_3_2),(jq_172); 

不工作。

QN 2纔有可能實現大的JavaScript,如一個used in fstoke用的jquery.js V1.7.2而不是V1.3.2 - 如果有人可以使一個顯着的區別,爲什麼用替換V1.3.2 v1.7.2使它停止工作 - 我會非常感激。

如果我可能會添加,因爲窗口由$ .window({...}); - 用$ .dialog替換$ .window不會產生對話框。有什麼地方我會出錯嗎?請瀏覽js文件used in fstoke

QN 3可能有人指出,不同的是有fstoke jquery-uicdn hosted jquery-ui之間是什麼 - 兩者都是V1.7.2 jQuery的ui.js文件。

我覺得這是一個很長的查詢,但我需要緊急幫助。請儘早幫助我。

+2

在單個頁面上使用多個版本的jQuery是一個非常糟糕的想法。事實上,版本1.3.2是**非常老舊 - 比IE 9老。任何不適用於較新版本的插件可能無人維護,因此無論如何都是高度懷疑的。 – Pointy 2012-07-09 22:07:18

回答

0

我要提問1.

正確的語法使用jQuery的兩個版本會是這樣的

var jQuery_1_3_2 = jQuery.noConflict(true); 

function createSampleWindow() { 
    var no_op = jQuery.noop;  // refers to jQuery 1.7.2's noop function 
    var no_op = $.noop;   // same as the above 
    var no_op = jq_172.noop;  // same as the above 
    var guid = jQuery_1_3_2.guid; // refers to jQuery 1.3.2's guid member 
} 

換句話說,你只需要使用他們,如果你讓他們已經定義。 noConflict(true)將返回$jQuery到他們以前的含義,所以你可以像往常一樣繼續使用它們。