我有问题是在ASP.NET页面的回发后点击li时保持活动手风琴打开。
这是脚本:
$(document).ready(function () {
$('#nav > li > a').click(function () {
if ($(this).attr('class') != 'active') {
$('#nav li ul').slideUp();
$(this).next().slideToggle();
$('#nav li a').removeClass('active');
$(this).addClass('active');
}
});
});
这是标记:
<ul id="nav">
<li><a href="#">Item 1</a>
<ul>
<li><a href="#">Sub-Item 1 a</a></li>
<li><a href="#">Sub-Item 1 b</a></li>
<li><a href="#">Sub-Item 1 c</a></li>
</ul>
</li>
<li><a href="#">Item 2</a>
<ul>
<li><a href="#">Sub-Item 2 a</a></li>
<li><a href="#">Sub-Item 2 b</a></li>
</ul>
</li>
<li><a href="#">Item 3</a>
<ul>
<li><a href="#">Sub-Item 3 a</a></li>
<li><a href="#">Sub-Item 3 b</a></li>
<li><a href="#">Sub-Item 3 c</a></li>
<li><a href="#">Sub-Item 3 d</a></li>
</ul>
</li>
<li><a href="#">Item 4</a>
<ul>
<li><a href="Facilitysoft_masterdetails.aspx?view=1">Site Master</a></li>
<li><a href="Facilitysoft_masterdetails.aspx?view=2">Phase Master</a></li>
<li><a href="Facilitysoft_masterdetails.aspx?view=3">Block Master</a></li>
<li><a href="Facilitysoft_masterdetails.aspx?view=4">Subblock Master</a></li>
<li><a href="Facilitysoft_masterdetails.aspx?view=5">Floor Master</a></li>
<li><a href="Facilitysoft_masterdetails.aspx?view=6">Flat Master</a></li>
<li><a href="Facilitysoft_masterdetails.aspx?view=7">Issue Master</a></li>
<li><a href="Facilitysoft_masterdetails.aspx?view=8">Gym/Swim Master</a></li>
<li><a href="Facilitysoft_masterdetails.aspx?view=9">Stock Master</a></li>
<li><a href="Facilitysoft_masterdetails.aspx?view=10">Clubhouse Master</a></li>
</ul>
</li>
</ul>
例如: 当我点击“第4项”然后点击“会所大师”时,特定的aspx页面即将出现,手风琴可以折叠并且需要维持该特定状态。
答案 0 :(得分:0)
这里的问题是,在回发之后,HTML将呈现回其默认状态..这相当于服务器记住的页面刷新。
所以你在这里的选项是在endRequest处理程序中处理这个,它在回发结束后被触发..
$(function() {
PostBack();
Sys.WenForms.PageRequestManager.getInstance().add_endRequest(PostBack);
});
function PostBack(){
// You need to save the state of the Accordion
// just before the postback
// and handle it here..
// Maybe store it in a hiddenField
// and retrieve it to change the settings..
}
答案 1 :(得分:0)
我有类似的问题。即想要在GET请求的情况下保存手风琴状态。在我的主模板中,写了一个页面的开关案例
if (strPage.EndsWith("page1.aspx")
|| strPage.EndsWith("page2.aspx"))
this.hdnfldtset.Value="ELS";
else if (strPage.EndsWith("page3.aspx")
|| strPage.EndsWith("page4.aspx")
this.hdnfldtset.Value="CMS";
然后,在母版的javascript中,读取此隐藏值并打开/关闭相应的手风琴部分。当您使用GET页面的项目很简单时,这将有效。我的申请就是这种情况。如果在你的情况下,它是回发,那么你可以使用隐藏字段来设置和使用javascript检索。