0

ドロップダウンメニューがあり、これまでのところ、このようなものを作成しました

$(function() {
    // hide all the sub-menus
    $("span.toggle").next().hide();
    $(".current").parents("li ul").show();

    // add a link nudging animation effect to each link
    $("#jQ-menu a, #jQ-menu span.toggle").hover(function() {
        $(this).stop().animate( {
            //paddingLeft:"10px",
            color:"black"
        }, 300);
    }, function() {
        $(this).stop().animate( {
            paddingLeft:"0",
            color:"#808080"
        }, 300);
    });

    // set the cursor of the toggling span elements
    $("span.toggle").css("cursor", "pointer");

    // prepend a plus sign to signify that the sub-menus aren't expanded
    $("span.toggle").prepend("+ ");
    // add a click function that toggles the sub-menu when the corresponding
    // span element is clicked
      $("span.toggle").click(function() {

            $(this).next().toggle(1000);
                // switch the plus to a minus sign or vice-versa
                var v = $(this).html().substring( 0, 1 );
                if ( v == "+" ){
                    $(this).html( "-" + $(this).html().substring( 1 ) );
                    var li = $(this).parent().siblings('li');
                    $('span.toggle', li).each(function(){
                        var v = $(this).html().substring( 0, 1 );
                        if ( v == "-" ){
                        $(this).html( "+" + $(this).html().substring( 1 ) );
                        $(this).next().toggle(1000);
                        }
                    });
                } else if ( v == "-" )
                    $(this).html( "+" + $(this).html().substring( 1 ) );
        });
    });

現在のページでメニューを展開したいと考えています。現在はそうですが、展開すると「+」が「-」に置き換えられます(「-」である必要があります)また、両方(「Pierwsze」と「Drugie」)が展開され、「Pierwsze」を閉じると、「Pierwsze」も「 Drugie」が閉幕。しかし、両方を閉じて「Drugie」をクリックして展開すると、「Pierwsze」も展開されます。ちなみに、「pierwsze」を展開してから「Drugie」をクリックすると、「Pierwsze」が閉じます。私の英語でごめんなさい。適切に説明したことを願っています。そのドロップダウンメニューをうまく機能させる方法がわかりません。ここにリンクがありますhttp://jsbin.com/amofoz/11/edit

4

1 に答える 1

0

ここを見てください:http://jsbin.com/amofoz/27/

私はこれを変更しました:

 $('span.toggle', li).each(function(){

これに:

$(this).find('span.toggle', li).each(function(){

それが役に立てば幸い

于 2013-06-04T08:23:07.843 に答える