1

以前に展開された chioces を折りたたむメニューを作成しようとしましたが、うまくいきません。

var currentId;

$(document).ready(function () {
    $(":range").rangeinput({
        progress: true
    });

    /* Slide Toogle */
    $("ul.expmenu li > div.header").click(function () {
        var arrow = $(this).find("span.arrow");

        if (arrow.hasClass("up")) {
            arrow.removeClass("up");
            arrow.addClass("down");
        } else if (arrow.hasClass("down")) {
            arrow.removeClass("down");
            arrow.addClass("up");
        }

        $('#' + currentId).parent().find("ul.menu").slideToggle();
        $(this).parent().find("ul.menu").slideToggle();
        currentId = $(this).attr('id');
    });
});

このアドレスでホームページを見つけることができます: http://admin.dq.se/kramers/nyamenyer.html

したがって、「BIL」を押すと、「BIL」が展開され、その後「MC」を押すと、BIL が折りたたまれ、MC が展開されます。助けてくれてありがとう!

4

3 に答える 3

2

滑り落ちる前にすべてをスライドさせます

$("ul.expmenu li > div.header").click(function () {

 $(this).parent().siblings().find('ul.menu').slideUp();
 $(this).parent().siblings().find('span.arrow').removeClass('up').addClass('down');

....

});
于 2013-03-01T15:31:16.977 に答える
0

これは正しくありません:

$(this).parent().find("ul.menu").slideToggle();

あなたはもっと上に行く必要があります:

$(this).closest('ul.expmenu').find("ul.menu").slideToggle();
于 2013-03-01T15:34:36.913 に答える
0

私は大まかに次のようなことをします:

    /* Slide Toogle */
    $("ul.expmenu li > div.header").click(function () {
    var arrow = $(this).find("span.arrow");

    if (arrow.hasClass("up")) {
        arrow.removeClass("up");
        arrow.addClass("down");
    } else if (arrow.hasClass("down")) {
        $('.arrow.up.').parents('li').children('ul.menu').slideUp();
        $('.arrow.up.').removeClass('up').addClass('down');
        arrow.removeClass("down");
        arrow.addClass("up");
    } 

これは基本的に「上向き」の矢印を探し、問題の矢印がまだ「下向き」の場合にのみ、メニューを表示します (DOM トラバースに注意してください)。

于 2013-03-01T15:42:46.307 に答える