我們必須使用jQuery UI的網站,其中一個網站包含一些來自其他網站的作品。這些作品是基於Jquery UI Accordion構建的,但我無法加載兩個版本的UI。一個是1.8.11的定製版本,另一個是完整版本(全部不會加載)使用多個jQuery UI版本
有什麼建議嗎?
我們必須使用jQuery UI的網站,其中一個網站包含一些來自其他網站的作品。這些作品是基於Jquery UI Accordion構建的,但我無法加載兩個版本的UI。一個是1.8.11的定製版本,另一個是完整版本(全部不會加載)使用多個jQuery UI版本
有什麼建議嗎?
請閱讀JQUERY UI上的文檔。如果不指定每個版本的CONTEXT,則不能使用兩個版本的UI。
這使您可以在一個頁面上使用多個UI。
壞消息是,一旦文件已經生成,你就不能再添加上下文。
我不確定,但我認爲在與UI分離的JavaScript文件中有一個鏈接,它會將您帶到JQUERY UI構建頁面,並且您可以使用上下文重新生成UI。
一個小時後發現這一點。出於某種原因,沒有人在互聯網上解釋過這一點。
首先,你打電話給你想要的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重要。
另一種選擇是將你的用戶界面加載到它自己的上下文中。
<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
任何錯誤信息?你是否試圖在同一個網站中加載兩個版本?還是你說你有兩個網站,每個網站都使用他們自己的版本,一個不會工作? – 2011-06-15 14:05:50