我在ASP.NET页面的回发后保持活动状态是否有问题。
这是脚本:
$(document).ready(function() {
$('.accordionButton').click(function() {
//Remove the "accordionOn" calss from all button
$('.accordionButton').removeClass('accordionOn');
//Close all open divs
$('.accordionContent').slideUp('normal');
//Open the div
if ($(this).next().is(':hidden') == true) {
//Add the "accordionOn" class to the button
$(this).addClass('accordionOn');
//Open div
$(this).next().slideDown('normal');
}
});
});
这是标记:
<div id="accordionWrapper">
<div class="accordionButton">
Hearder 1</div>
<div class="accordionContent">
Content 1
<asp:Label ID="lblName" runat="server"></asp:Label>
<br />
<asp:Button ID="btnSayHello" runat="server" Text="Say Hello" />
</div>
<div class="accordionButton">
Hearder 2</div>
<div class="accordionContent">
Content 2
</div>
<div class="accordionButton">
Hearder 3</div>
<div class="accordionContent">
Content 3
</div>
</div>
我想坚持使用活跃的手风琴,即当前的开放式div,在ASP.NET的后期保持开放。
谢谢。
答案 0 :(得分:1)
回发所选窗格的索引,并在页面加载时恢复为
$('.accordionButton').eq(index).click()
答案 1 :(得分:0)
您可以将手风琴位置保存在Cookie中,然后在页面加载时检索它并将其设置为:
$('.accordionButton').eq(index).click()
查看here如何在javascript中设置/获取cookie中的值
答案 2 :(得分:0)
您应保存所选的窗格,并在页面加载时使用javascript选择它:
$(document).ready(function(){
$('.accordionButton').eq(<%= SelectedPane %>).click()
});
或者,你可以像facebook那样在你的网址中使用哈希,但它会更复杂。
希望这会有所帮助。干杯
答案 3 :(得分:0)
索引值可以是布尔值或整数
<script language="javascript" type="text/javascript">
$(function () {
var activeIndex = parseInt($('#<%=AccordionIndexHidden.ClientID %>').val());
if (activeIndex < 0)
activeIndex = false;
$("#accordion").accordion({
autoHeight: false,
event: "mousedown",
active: activeIndex,
change: function (event, ui) {
var index = $(this).children('h3').index(ui.newHeader);
$('#<%=AccordionIndexHidden.ClientID %>').val(index);
}
});
});
</script>
请记住以小于0的索引开始
<asp:HiddenField ID="AccordionIndexHidden" runat="server" Value="-1" />