我正在努力让我的jquery在Sitefinity中保持井然有序。将Sitefinity小部件拖到页面上会破坏我母版页中的脚本链接。
Sitefinity论坛上已经开始了一个主题:http://www.sitefinity.com/developer-network/forums/developing-with-sitefinity-/how-to-adjust-around-sitefinity-scripts#S2PcF40QrkClp_vEDb6cqg
任何帮助都将不胜感激。我不是唯一遇到这个问题的人...
先谢谢你,
发布于 2013-01-13 17:41:23
使用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中的免责声明。
发布于 2015-10-10 19:26:13
您可以使用jQuery noConflict()来解决您的问题。
加载您的jQuery文件,然后将依赖于该版本的jQuery的所有库依次包含在内。
Example:
include jQuery 1.11
include Bootstrap jQuery plugin
include Response.js
so on.,当所有的依赖库都被一个接一个地添加到你的jQuery版本之下时...当前$ scope中的jQuery版本将用于初始化库。因此,您的依赖库将如预期的那样使用jQuery版本得到包含/增强。万岁!!
最后,为了让Sitefinity RAD控件和widgets能够在CMS jQuery版本中正常工作,您需要将jQuery对象完全移动到其他变量名中,如下所示。
jq1_11 = $.noConflict(true);然后在您的自定义脚本中使用jq1_11,而不是$或jQuery。
或
如果你仍然喜欢使用$,那么遵循闭包模式,使用匿名函数,如下所示。
(function($){
$("#id").on("click", handlerFn);
})(jq1_11);缺点:有些人会抱怨使用两个版本的jQuery,但这种情况只发生在
内联编辑或当RAD控件位于页面或sitefinity后端时
好处:您可以使用最新的库和最新的jQuery
https://stackoverflow.com/questions/14298485
复制相似问题