切换手风琴菜单时更改bg图像

时间:2009-05-07 11:04:18

标签: jquery image background accordion toggle

我有一个ccordion菜单,每个菜单标题都有一个小箭头img,当菜单向下和向上滑动时会改变。

这是到目前为止的代码:

    $(document).ready(function() {
    $("div.menu_body").hide();
    $("#menuheader div.menu_head div.detailsPanel").toggle(function() {
      $(this).addClass("detailsPanelSelected").parent(this).next("div.menu_body").slideToggle(300).siblings("div.menu_body").slideUp("slow");
    },
      function() {

 $(this).removeClass("detailsPanelSelected").parent(this).next("div.menu_body").slideUp("slow");
      }
    );

当我一次切换一个菜单项时,这可以正常工作。

但是我说我展开了一个菜单项,然后点击另一个菜单标题。会发生的是,第一个菜单项向上滑动,新点击的向下滑动,就像预期的那样。但箭头gif不会改变回滑动的菜单。发生这种情况是因为它的切换功能仍然处于第一状态,如果我再次点击它,从而删除“detailsPanelSelected”类,所有发生的事情都是图像变回。查看代码,这是预期的。

所以我的问题是,如何在单击另一个菜单标题时删除菜单项“detailsPanelSelected”?我可以以某种方式重置挂起的切换功能吗?

2 个答案:

答案 0 :(得分:0)

尝试这样的事情:

$(“#menuheader div.menu_head div.detailsPanel”)。toggle(function(){

$( “detailsPanelSelected”)。每个(函数(I){ this.removeClass( “detailPanelSelected”); })

$(this).addClass("detailsPanelSelected").parent(this).next("div.menu_body").slideToggle(300).siblings("div.menu_body").slideUp("slow");

}

代码的重要部分是:

$( “detailsPanelSelected”)。每个(函数(I){ this.removeClass( “detailPanelSelected”); })

它应该放在你添加改变箭头方向的类的代码之上...因此所有元素都回到了它们的关闭状态,然后你的下一个函数“打开”正确的那个

答案 1 :(得分:0)

听起来你可以使用Slidorion。它是图像滑块和手风琴的组合。检查一下,可能有用:

http://www.slidorion.com