我有一个菜单,它是我母版页上的嵌套ListView控件。我使用下面的Jquery将这个ListView变成手风琴。问题是,当我点击菜单标题时,它将导致回发。因此子菜单闪烁并且后置完成后重新加载页面和菜单(关闭活动子菜单)。
$('.head').each(function () {
var $content = $(this).closest('li').find('.content');
$(this).click(function (e) {
// e.preventDefault();
$content.not(':animated').slideToggle();
});
});
答案 0 :(得分:2)
简单地说,在回发过程中你可以通过几种方式维持状态。最简单的两个是使用POST和GET,即ViewState或某种查询字符串。
<强>续强>
我个人建议使用隐藏字段,假设您希望第3个项目在加载时打开,那么您将使用类似
的内容<input id="hidMenuItem" type="hidden" value="3" />
然后使用jQuery
$(document).ready(function {
var itemIndex = $("#hidMenuItem").val();
$("li .content:nth-child(" + itemIndex + ")").slideToggle();
});
要在回发之前保存未清项目,请在click
事件
var itemIndex = $("li .content").index(this);
$("#hidMenuItem").val(itemIndex);
这是未经测试但这是个主意。 希望有所帮助