Аккордеон SharePoint не загружается должным образом

Я работаю над страницей 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


person BeMuRR187    schedule 01.02.2018    source источник
comment
С вашим кодом проблем нет. Я столкнулся с подобной проблемой с аккордеоном, используя CSR. Затем, немного покопавшись, я обнаружил, что мой jquery не загружается должным образом. Вы должны убедиться, что ваш jquery полностью загружен, прежде чем начнется выполнение вашего кода CSR......   -  person Rohit Waghela    schedule 02.02.2018
comment
Я добавил ссылку Jquery в PlaceHolderAdditionalPageHead. И мой код начал работать..   -  person Rohit Waghela    schedule 02.02.2018
comment
Я добавил ‹script src=/_catalogs/masterpage/test1/jquery-1.11.2.min.js type=text/javascript›‹/script› в заголовок с помощью редактора скриптов, и это помогло! Спасибо!   -  person BeMuRR187    schedule 05.02.2018


Ответы (1)


Добавьте следующее в заголовок вашего редактора сценариев, но замените средние части тем, что находится в вашем файле/местоположении.

<script src="/_catalogs/masterpage/test1/jquery-1.11.2.min.js" type="text/javascript"></script> 
person BeMuRR187    schedule 06.03.2018