簡體   English   中英

多個jquery noConflict文件

[英]Multiple jquery noConflict files

我正在實現2組功能,如下所示:

對於窗口生成-必需的jQuery庫是:-jquery.js(v1.3.2)-jquery-ui.js(v1.7.2)

我正在使用這里使用的擴展庫-使用$ .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,則不會生成Windows。

現在,我使用以下功能:

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和jq_172的正確語法是什么? 在這里使用的東西像:

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,例如在fstoke中使用jquery.js v1.7.2而不是v1.3.2的javascript-如果有人可以做出顯着的區分,為什么用v1.7.2替換v1.3.2會使它停止工作-我非常有義務。

如果可以的話,因為窗口是由$ .window({...})制成的; -用$ .dialog替換$ .window不會創建對話框。 我哪里出問題了? 請瀏覽fstoke中使用的js文件。

Qn 3有人可以指出fstoke jquery-uicdn托管的jquery-ui之間有什么區別-兩者都是v1.7.2 jquery-ui.js文件。

我覺得這是一個很長的查詢,但是我迫切需要幫助。 請最早幫助我!

我將回答問題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之前的含義,因此您可以照常繼續使用它們。

暫無
暫無

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

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