DotNetNuke JQuery вкладки не работает
Вкладки и панели JQuery не работают в DNN версии 08.00.03. Он работает только тогда, когда пользователь вошел в систему. После выхода из системы все панели и вкладки перестают работать.
У меня есть код ниже в модуле HTML:
<div class="dnnForm" id="panels-demo">
<div class="dnnFormExpandContent"><a href="">Expand All</a></div>
<h2 id="ChristopherColumbus" class="dnnFormSectionHead"><a href="#">Christopher Columbus</a></h2>
<fieldset class="dnnClear">
<img src="<%=ResolveUrl("Images/498px-Christopher_Columbus.PNG") %>" alt="Christopher Columbus" width="32%" class="dnnLeft" />
<div class="dnnRight" style="width:62%;margin-left:2%">
<h1>Christopher Columbus</h1>
<p>Italian navigator, colonizer and explorer whose voyages led to general European awareness of the American continents.</p>
</div>
</fieldset>
<h2 id="IsaacNewton" class="dnnFormSectionHead"><a href="#">Isaac Newton</a></h2>
<fieldset class="dnnClear">
<img src="<%=ResolveUrl("Images/GodfreyKneller-IsaacNewton-1689.jpg") %>" alt="Isaac Newton" width="32%" class="dnnLeft" />
<div class="dnnRight" style="width:62%;margin-left:2%">
<h1>Isaac Newton</h1>
<p>English physicist, mathematician, astronomer, natural philosopher, alchemist, and theologian. His law of universal gravitation and three laws of motion laid the groundwork for classical mechanics.</p>
</div>
</fieldset>
<h2 id="JohannesGutenberg" class="dnnFormSectionHead"><a href="#">Johannes Gutenberg</a></h2>
<fieldset class="dnnClear">
<img src="<%=ResolveUrl("Images/Gutenberg.jpg") %>" alt="Johannes Gutenberg" width="32%" class="dnnLeft" />
<div class="dnnRight" style="width:62%;margin-left:2%">
<h1>Johannes Gutenberg</h1>
<p>German printer who invented the mechanical printing press.</p>
</div>
</fieldset>
</div>
Следующий код размещен в заголовке модуля:
<script type="text/javascript">
jQuery(function ($) {
var setupModule = function () {
$('#panels-demo').dnnPanels();
$('#panels-demo .dnnFormExpandContent a').dnnExpandAll({
targetArea: '#panels-demo'
});
};
setupModule();
Sys.WebForms.PageRequestManager.getInstance().add_endRequest(function () {
// note that this will fire when _any_ UpdatePanel is triggered,
// which may or may not cause an issue
setupModule();
});
});
</script>
В некоторых вопросах Stackru и других формах упоминалось добавление этой строки кода:
jQuery.RequestDnnPluginsRegistration();
Не уверен, как и где его добавить, и решит ли это проблему. Код выше взят с этого сайта: http://uxguide.dotnetnuke.com/UIPatterns/Panels.html
2 ответа
Ваш код не будет работать так, как сейчас, используемый вами пример должен быть на кодовой странице.aspx или.ascx из пользовательского модуля или файла скинов / контейнеров. Код <%=ResolveUrl("Images/GodfreyKneller-IsaacNewton-1689.jpg") %>
не может использоваться внутри модуля HTML. Это код на стороне сервера.
Если вы посмотрите на эти http://www.dnnsoftware.com/wiki/reusable-dotnetnuke-jquery-plugins вам нужно DotNetNuke.Framework.jQuery.RequestDnnPluginsRegistration();
а также ClientAPI.RegisterClientReference(this.Page, ClientAPI.ClientNamespaceReferences.dnn);
в коде для вкладок для работы.
Они, вероятно, используются где-то, когда пользователь вошел в систему, так что это моя функция вкладок правильно. И если вы создаете свои собственные модули, вы можете добавить эти строки в их код.
Однако после некоторого тестирования я обнаружил, что вы можете добавить эти строки в HTML, и это будет работать.
<script src="/Resources/Shared/Scripts/dnn.jquery.js?cdv=41" type="text/javascript"></script>
<script src="/js/dnn.js?cdv=41" type="text/javascript"></script>
Возможно, по какой-то причине ваши ресурсы загружаются не по порядку. Что произойдет, если вы поместите свой JavaScript в $(документ).ready({