【发布时间】:2018-07-12 04:10:33
【问题描述】:
我正在处理 SharePoint 页面,将 jslink 用于列表 Web 部件。我写了以下代码:
(function () {
var overrideCurrentContext = {};
overrideCurrentContext.Templates = {};
overrideCurrentContext.Templates.Header = "<div class='ListAccordion'>";
overrideCurrentContext.Templates.Footer = "</div>";
overrideCurrentContext.OnPostRender = OnPostRender;
overrideCurrentContext.Templates.Item = ItemTemplate;
SPClientTemplates.TemplateManager.RegisterTemplateOverrides(overrideCurrentContext);
})();
function ItemTemplate(ctx) {
var Title = ctx.CurrentItem["Title"];
var Body = ctx.CurrentItem["Body"];
return "<h2>" + Title + "</h2><p>" + Body + "</p><br/>";
}
function OnPostRender() {
$('.ListAccordion h2').click(function () {
$(this).next().slideToggle();
}).next().hide();
$('.ListAccordion h2').css({
"background-color": "#0B0B61",
"cursor": "pointer",
"color": "white" ,
"border-radius" : "15px",
"padding-left" : "10px"
});
}
我遇到的问题是,在我使用手动刷新选项之前,我的手风琴视图不会显示,或者我在 Web 部件属性的 AJAX 选项下等待异步自动刷新。
在我保存或重新加载页面之前,手风琴显示得很完美,但如果我使用 ajax 选项,它就可以工作。我能做些什么来确保在第一次打开页面时立即显示手风琴?
我也将文件保存在我的站点资产中,这是我正在使用的链接 ~site/SiteAssets/Accordions12.js
【问题讨论】:
-
您的代码没有问题。我在使用 CSR 的手风琴时遇到了类似的问题。然后经过一番挖掘,我发现我的 jquery 没有正确加载。在开始执行 CSR 代码之前,您必须确保您的 jquery 已完全加载......
-
我在
PlaceHolderAdditionalPageHead中添加了 Jquery 引用。我的代码开始工作了.. -
我使用脚本编辑器在标题中添加了 它有帮助!谢谢!
标签: ajax sharepoint accordion web-parts jslink