2016-08-12 5 views
0

Вкладки и панели JQuery не работают в DNN версии 08.00.03. Он работает только при входе пользователя в систему. Как только пользователь выходит из системы, все панели и вкладки перестают работать.DotNetNuke вкладки jQuery не работают

У меня есть ниже код в 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>  

Некоторые вопросы StackOverflow и другие формы упоминалось, добавив следующую строку кода:

jQuery.RequestDnnPluginsRegistration(); 

Не знаете, как и где его добавить, и будет ли он разрешать вопрос. Вышеупомянутый код взято с этого сайта: http://uxguide.dotnetnuke.com/UIPatterns/Panels.html

+1

Что означает «перестать работать»? Какие ошибки вы видите в консоли javascript и вкладке сети? –

+0

Это означает, что панели всегда расширяются. Если вы нажмете на них, они должны разрушаться или расширяться. Я получаю эту ошибку в консоли: Object не поддерживает свойство или метод 'dnnPanels' – user2536008

+0

Я бы предположил, что скрипт, содержащий определение 'dnnPanels', не загружается должным образом (проверьте свою вкладку сети на наличие ошибок). И поскольку вы упоминаете, что вход в систему имеет значение, я предполагаю, что для сценария требуется авторизация. –

ответ

1

Ваш код не будет работать так, как он есть сейчас, пример, который вы использовали, должен быть на кодовой странице .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> 
1

Возможно, по какой-то причине ресурсы ресурса не работают. Что произойдет, если вы обернете свой JavaScript в $ (документе) .ready ({