我正努力让我的jquery在Sitefinity中保持秩序。将Sitefinity小部件拖出到页面上会破坏我的母版页中的脚本链接。
线程已在Sitefinity论坛上启动:http://www.sitefinity.com/developer-network/forums/developing-with-sitefinity-/how-to-adjust-around-sitefinity-scripts#S2PcF40QrkClp_vEDb6cqg
非常感谢任何帮助。我不能成为唯一遇到这个问题的人......
提前谢谢你,
答案 0 :(得分:2)
使用sf:resourcelinks确保加载jQuery时Sitefinity和RadControls之间没有冲突。
<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。在使用JavascriptEmbedControl icw VisualStudio时,请阅读here以获取免责声明。
答案 1 :(得分:0)
您可以使用jQuery noConflict()来解决您的情况。
加载你的jQuery文件,然后将所有依赖于jQuery版本的库包含在另一个之下。
Example:
include jQuery 1.11
include Bootstrap jQuery plugin
include Response.js
so on.,
当所有依赖库在jQuery版本下面一个接一个地添加时...当前$ scope中的jQuery版本将用于初始化库。因此,您可以按预期使用jQuery版本来包含/增强您的依赖库。 万岁!!
然后最终允许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