2011-06-15 61 views
3

我們必須使用jQuery UI的網站,其中一個網站包含一些來自其他網站的作品。這些作品是基於Jquery UI Accordion構建的,但我無法加載兩個版本的UI。一個是1.8.11的定製版本,另一個是完整版本(全部不會加載)使用多個jQuery UI版本

有什麼建議嗎?

+0

任何錯誤信息?你是否試圖在同一個網站中加載兩個版本?還是你說你有兩個網站,每個網站都使用他們自己的版本,一個不會工作? – 2011-06-15 14:05:50

回答

0

請閱讀JQUERY UI上的文檔。如果不指定每個版本的CONTEXT,則不能使用兩個版本的UI。

這使您可以在一個頁面上使用多個UI。

壞消息是,一旦文件已經生成,你就不能再添加上下文。

我不確定,但我認爲在與UI分離的JavaScript文件中有一個鏈接,它會將您帶到JQUERY UI構建頁面,並且您可以使用上下文重新生成UI。

+0

@Rune FS是這個答案嗎? – T9b 2011-06-23 21:37:49

+0

至少它是最接近任何一個來:)。它並沒有真正解決加載相同構建版本的UI兩次的問題,但問題可能是相同的,雖然 – 2011-07-04 10:04:49

+6

「[在] jQuery UI構建頁面上......您可以使用上下文重新生成UI」您是否有這是一個參考?https://jqueryui.com/download/上的jQuery UI構建頁似乎沒有提及任何名爲'CONTEXT'的內容,並且似乎沒有控件來添加這樣的內容。 – fooquency 2014-03-01 13:54:56

4

一個小時後發現這一點。出於某種原因,沒有人在互聯網上解釋過這一點。

首先,你打電話給你想要的jQuery的版本中noconflicted:

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.0/jquery.min.js"></script> 
<script type="text/javascript"> 
    var $jnine = jQuery.noConflict(); 
</script> 

在這種情況下,我所謂的新的jQuery $ jnine,在參考版本號。

現在你需要編輯jquery-ui-1.10.0.custom.min.js。這其實很簡單。用你最喜歡的支持搜索和替換的文本編輯器打開它。 Notepad ++在我看來是最好的。

現在你要搜索(jQuery),區分大小寫,並與($jnine)替換然後保存文件的地方,並在網站上執行之後的noConflict()功能已經跑了。

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.0/jquery.min.js"></script> 
<script type="text/javascript"> 
    var $jnine = jQuery.noConflict(); 
</script> 

<script src="js/jquery-ui-1.10.0.custom_jnine.min.js"></script> 

現在你可以調用所有的jQuery和jQuery UI功能與$jnine

Rememver:這是你運行此腳本之前任何其他jQueries被加載,除非他們也noConflicted重要。

0

另一種選擇是將你的用戶界面加載到它自己的上下文中。

<script language="javascript" type="text/javascript"> 
    var smartDonationsOldJQuery=jQuery; 
    var smartDonationsOldCashSign=$; 
</script> 

<script language="javascript" type="text/javascript" src="http://rednao.com/wp-content/plugins/smartdonations/js/jquery-1.9.1.min.js"></script> 
<script language="javascript" type="text/javascript" src="http://rednao.com/wp-content/plugins/smartdonations/js/jquery-ui-1.10.2.custom.js"></script> 

<script language="javascript" type="text/javascript"> 
    var rnSDJQ=jQuery; 
    window.jQuery =smartDonationsOldJQuery; 
    window.$ = smartDonationsOldCashSign; 
</script> 

關於這個的好處是,你將擁有自己從代碼的其餘部分曝曬的jQuery/jQuery的UI的副本(這是非常好的,如果你正在創建組件,如WordPress的組件)壞事情是,你將不得不再次加載jquery。

這裏更多的信息(聲明,我寫的):Using multiple versions of jquery ui