2013-01-12 110 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!无论时间如何,您的额外输入都会有所帮助。 :) –