【问题标题】:Use jquery to reopen last active accordion panel after page reload页面重新加载后使用jquery重新打开最后一个活动的手风琴面板
【发布时间】:2013-07-03 20:39:17
【问题描述】:

我有一个带有手风琴的页面。当您打开其中一个面板时,它会列出指向站点上其他页面的各种链接。如果您单击其中一个链接,目标页面将在灯箱中打开,用户将在此灯箱中进行更改并提交表单。提交更改后,灯箱将自动关闭,父页面将重新加载。重新加载是必要的,因为它会显示在灯箱中更新的值的摘要,因此无需重新加载摘要,它只会显示旧值。问题是我需要以前活动的面板回到那个状态。是否有捷径可寻?或者是否可以仅重新加载包含更新数据的 div 以便不重新加载整个页面?我的代码如下(面板二处于活动状态):

   <script type="text/javascript">
   // Refreshes the page. Called from the page shown in the lightbox
      function refreshPage() {      
      // reload
      window.location.reload();
      }
   </script>

<div id="container">   
   <div id="panelOne">
      <div class="Accordion ui-accordion" role="tablist">
         <h3 class="AccordionHeader ui-state-default" role="tab" aria-expanded="false"     aria-selected="false" tabindex="0">
            <div><span><a href="javascript:void(0)" tabindex="-1">Panel One</a></span>    </div>
         </h3>
         <div class="AccordionContent" role="tabpanel" style="display: none;">
            <div id="Content1">

            </div>
         </div>
      </div>

   </div>
   <div id="panelTwo">
      <div class="Accordion ui-accordion" role="tablist">
         <h3 class="AccordionHeader ui-state-active" role="tab" aria-expanded="true"     aria-selected="true" tabindex="0">
            <div><span><a href="javascript:void(0)" tabindex="-1">Panel Two</a></span>    </div>
         </h3>
         <div class="AccordionContent ui-accordion-content-active" role="tabpanel"         style="display: block;">
            <div id="Content2">

            </div>
         </div>
      </div>

   </div>
   <div id="panelThree">
      <div class="Accordion ui-accordion" role="tablist">
         <h3 class="AccordionHeader ui-state-default" role="tab" aria-expanded="true"     aria-selected="true" tabindex="0">
            <div><span><a href="javascript:void(0)" tabindex="-1">Panel Three</a>        </span></div>
         </h3>
         <div class="AccordionContent" role="tabpanel" style="display: none;">
            <div id="Content3">

            </div>
         </div>
      </div>
   </div>

【问题讨论】:

    标签: jquery accordion


    【解决方案1】:

    jQuery 的 .load() 将允许您仅获取文档的一部分。见:http://api.jquery.com/load/

    例如:

    $('#summary').load('somepage.html #summary > *');
    

    将页面somepage.html中元素#summary的内容加载到当前元素#summary中

    【讨论】:

    • 非常感谢您的回复。我已经更新了我的 JS 代码,但是当我提交时,我现在收到一个错误 - “未捕获的 Sys.ArgumentException:Sys.ArgumentException:找不到 ID 为“aspnetForm”的元素。参数名称:elementOrElementId”。将 JS src 更改为使用结束标记(我读过这可能会有所帮助)并不能解决此问题。知道是什么原因造成的吗?
    • 是与手风琴问题直接相关还是已经解决并发现了新的错误?听起来对我来说完全是一个不同的问题。你应该开始一个新的问题。 .net 编码员可能有一些见解。
    猜你喜欢
    • 2011-08-17
    • 1970-01-01
    • 2012-02-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-14
    • 2021-07-07
    • 2017-11-22
    相关资源
    最近更新 更多