2013-01-12 108 views

回答

1

使用SF:resourcelinks確保Sitefinity和之間的RadControls沒有衝突加載jQuery的時候。

<sf:resourcelinks id="ResourceLinks1" runat="server"> 
    <sf:ResourceFile JavaScriptLibrary="JQuery" /> 
</sf:resourcelinks> 

使用asp:scriptmanager代替radscriptmanager。

使用JavascriptEmbedControl在固定的位置加載腳本,以確保文件加載時混合匹配加載外部和內嵌腳本

<sf:JavaScriptEmbedControl 
    id="script1" 
    runat="server" 
    scriptembedposition="InPlace" 
    url="somescript.js" 
/> 

有關的最佳途徑更多信息加載了jQuery,檢查此forum thread。並閱讀here以獲取免責聲明時使用JavaScriptEmbedControl icw VisualStudio。

+0

此代碼是否仍然與Sitefinity版本9.2相關?我正在一個新的網站上工作,並且遇到了和我在2013年一樣的問題。:/我不能讓我的基礎腳本工作,即使它安裝在羽毛中......如果我理解羽毛是如何工作的。 –

0

您可以使用jQuery noConflict()來解決您的情況。

加載你的jQuery文件,然後包括所有依賴於該版本jQuery的庫。

Example: 

include jQuery 1.11 
include Bootstrap jQuery plugin 
include Response.js 
so on., 

當所有的依賴庫中的其他下面您的jQuery版本後立即加一... jQuery的版本在當前$範圍將被用於初始化庫。因此,您所依賴的庫將按預期使用jQuery版本進行包含/增強。 Hooray !!

然後最後讓Sitefinity RAD控件和小部件與CMS jQuery版本一起工作,你需要將你的jQuery對象完全移動到像下面這樣的其他變量名稱。

jq1_11 = $.noConflict(true); 

然後在您的自定義腳本中使用jq1_11而不是$或jQuery。

OR

,如果你還是喜歡使用$,使用匿名函數像下面然後按照關閉模式。

(function($){ 
    $("#id").on("click", handlerFn); 
})(jq1_11); 

缺點: 有些人會抱怨使用2個版本的jQuery,但出現這種情況僅在

聯編輯或 當RAD控制在頁面或 在sitefinity後端

上行: 您可以使用最新的庫&最新的jQuery

+0

我知道這個解決方案不會使@maria好,因爲它已經太晚了,但是我認爲我應該在這裏註冊一個替代解決方案 –

+0

謝謝@david-g-chelliah!無論時間如何,您的額外輸入都會有所幫助。 :) –