0

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

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

1 回答 1

2

简单地说,有几种方法可以在回发期间保持状态。两个最简单的方法是使用 POST 和 GET,即 ViewState 或某种查询字符串。

继续

我个人建议使用隐藏字段,假设您希望第三个项目在加载时打开,那么您将使用类似

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

它未经测试,但这就是想法。希望有帮助

于 2013-02-27T17:47:47.657 回答