回弹后Jquery手风琴防止菜单崩溃

时间:2013-02-27 17:05:02

标签: c# jquery asp.net

我有一个菜单,它是我母版页上的嵌套ListView控件。我使用下面的Jquery将这个ListView变成手风琴。问题是,当我点击菜单标题时,它将导致回发。因此子菜单闪烁并且后置完成后重新加载页面和菜单(关闭活动子菜单)。

 $('.head').each(function () {
            var $content = $(this).closest('li').find('.content');
            $(this).click(function (e) {
               // e.preventDefault();
                $content.not(':animated').slideToggle();
            });
        });

1 个答案:

答案 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);

这是未经测试但这是个主意。 希望有所帮助