首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >手风琴菜单开关加/减不能正常工作

手风琴菜单开关加/减不能正常工作
EN

Stack Overflow用户
提问于 2015-01-10 10:07:33
回答 1查看 937关注 0票数 1

请帮我解决多层手风琴菜单的加/减开关问题。我不知道如何使正负开关正确,如这里的http://www.nextendweb.com/demo/accordionmenu/vehicles-bold/car.html

编写了一个完全工作的代码,但开关http://jsfiddle.net/a525drwp/除外

代码语言:javascript
复制
<ul>
    <li class="js_slider"><a href="#">Level-1</a>
        <ul>
            <li class="js_slider"><a href="#">Level-2</a>
                <ul>
                    <li><a href="#">Level-3</a></li>
                    <li><a href="#">Level-3</a></li>
                    <li><a href="#">Level-3</a></li>
                    <li><a href="#">Level-3</a></li>
                </ul>
            </li>
            <li class="js_slider"><a href="#">Level-2</a>
                <ul>
                    <li><a href="#">Level-3</a></li>
                    <li><a href="#">Level-3</a></li>
                    <li><a href="#">Level-3</a></li>
                    <li><a href="#">Level-3</a></li>
                </ul>
            </li>
        </ul>
    </li>

    <li class="js_slider"><a href="#">Level-1</a>
        <ul>
            <li class="js_slider"><a href="#">Level-2</a>
                <ul>
                    <li><a href="#">Level-3</a></li>
                    <li><a href="#">Level-3</a></li>
                    <li><a href="#">Level-3</a></li>
                    <li><a href="#">Level-3</a></li>
                </ul>
            </li>
            <li class="js_slider"><a href="#">Level-2</a>
                <ul>
                    <li><a href="#">Level-3</a></li>
                    <li><a href="#">Level-3</a></li>
                    <li><a href="#">Level-3</a></li>
                    <li><a href="#">Level-3</a></li>
                </ul>
            </li>
        </ul>
    </li>

    <li class="js_slider"><a href="#">Level-1</a>
        <ul>
            <li class="js_slider"><a href="#">Level-2</a>
                <ul>
                    <li><a href="#">Level-3</a></li>
                    <li><a href="#">Level-3</a></li>
                    <li><a href="#">Level-3</a></li>
                    <li><a href="#">Level-3</a></li>
                </ul>
            </li>
            <li class="js_slider"><a href="#">Level-2</a>
                <ul>
                    <li><a href="#">Level-3</a></li>
                    <li><a href="#">Level-3</a></li>
                    <li><a href="#">Level-3</a></li>
                    <li><a href="#">Level-3</a></li>
                </ul>
            </li>
        </ul>
    </li>
</ul>

JavaScript

代码语言:javascript
复制
$(document).ready(function() {
        // hide submenu (works well)
        $('.js_slider ul').hide();

        // accordion multilevel menu (works well)
        $('.js_slider > a').on('click', function(event){
            var jsPro = $(this).parent('li');
            if (jsPro.hasClass('js_open')) {
                jsPro.removeClass('js_open');
                jsPro.find('li').removeClass('js_open');
                jsPro.find('ul').slideUp();
            }
            else {
                jsPro.addClass('js_open');
                jsPro.children('ul').slideDown();
                jsPro.siblings('li').children('ul').slideUp();
                jsPro.siblings('li').removeClass('js_open');
                jsPro.siblings('li').find('li').removeClass('js_open');
                jsPro.siblings('li').find('ul').slideUp();
            }
            event.preventDefault();
        });

        // add font-awesome icon
        $('.js_slider').addClass("fa fa-plus");


        //switch plus / minus (does not work properly)
        $('.fa-plus').click(function() {
            $('.js_slider').removeClass("fa-minus").addClass("fa-plus");
            $(this).toggleClass("fa-minus fa-plus ");
        });



    });// and ready

CSS

代码语言:javascript
复制
li {list-style: none;display: block !important;padding: 5px 0;}
a {text-decoration: none;padding-left: 5px;}

,请帮帮我!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-01-10 10:58:05

这工作:JSFiddle

我正在添加和删除fa+fa-减号,这要容易得多:)

代码语言:javascript
复制
$(document).ready(function() {
    // hide submenu (works well)
    $('.js_slider ul').hide();

    // accordion multilevel menu (works well)
    $('.js_slider > a').on('click', function(event){
        var jsPro = $(this).parent('li');
        if (jsPro.hasClass('fa-minus')) {
            jsPro.removeClass('fa-minus');
            jsPro.addClass('fa-plus');
            jsPro.children().find('li.fa-minus').addClass('fa-plus');
            jsPro.children().find('li').removeClass('fa-minus');
            jsPro.find('ul').slideUp();
        }
        else {
            jsPro.addClass('fa-minus');
            jsPro.removeClass('fa-plus');
            jsPro.children('ul').slideDown();
            jsPro.siblings('li').children('ul').slideUp();
            jsPro.siblings('li.fa-minus').addClass('fa-plus');
            jsPro.siblings('li').removeClass('fa-minus');
            jsPro.siblings('li').find('li.fa-minus').addClass('fa-plus');
            jsPro.siblings('li').find('li').removeClass('fa-minus');
            jsPro.siblings('li').find('ul').slideUp();
        }
        event.preventDefault();
    });

    // add font-awesome icon
    $('.js_slider').addClass("fa fa-plus");
});// and ready
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27874990

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档