Я работаю над страницей SharePoint, используя jslink для веб-части списка. У меня написан следующий код:
(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"
});
}
Проблема, с которой я сталкиваюсь, заключается в том, что мое представление аккордеона не будет отображаться до тех пор, пока я не использую параметр ручного обновления или я не жду асинхронного автоматического обновления в обоих параметрах AJAX свойств веб-части.
Аккордеон отображается идеально, пока я не сохраню или не перезагружу страницу, но он работает, если я использую параметры ajax. Могу ли я что-нибудь сделать, чтобы аккордеон сразу отображался при первом открытии страницы?
также у меня есть файл, сохраненный в моих ресурсах сайта, и это ссылка, которую я использую ~site/SiteAssets/Accordions12.js
PlaceHolderAdditionalPageHead
. И мой код начал работать.. - person Rohit Waghela   schedule 02.02.2018