развернуть свернуть используя jquery для дерева не работает узел - PullRequest
0 голосов
/ 23 декабря 2010

Я создаю дерево с помощью jquery в дереве, когда есть более одного дочернего элемента для конкретного дочернего элемента, для которого я хочу дать эффект переключения. Это означает, что при нажатии на него должен быть значок плюса, дерево должно развернуться и минус изображение должно появиться при щелчке минус дерево должно рухнуть, и плюс изображение должно прийти.

как это разработать, будет полезен любой рабочий пример узла дерева

Таким образом, я использовал вашу функцию

function createSpanImageNode(spnNew) {
    var spnImage = document.createElement("span");
    spnImage.id = spnNew + "_" + "spn1";
    $(spnImage).addClass('SpanPlus');
    spnImage.setAttribute('onclick', 'toogleNode("' + spnImage.id + '")');
    return spnImage;
}

function toogleNode(spnID) {
        debugger;
        var dv = $("#" + spnID).parents("div:first");
        var chkUl = $(dv).find('ul').length;
        if (chkUl > 0) {
            if ($("#" + spnID).hasClass('SpanPlus'))
                $("#" + spnID).removeClass('SpanPlus').addClass('SpanMinus');
            else
                $("#" + spnID).removeClass('SpanMinus').addClass('SpanPlus');
            $(dv).find('ul').animate({ height: 'toggle' });
        }
    }

два действия, которые он должен выполнить: 1) удалить класс с помощью span и добавить класс с минусом. 2) он должен переключать ul.

оба не работают ????

Ответы [ 2 ]

0 голосов
/ 22 октября 2018
<script type="text/javascript">
$(document).ready(function () {

$('.navbar .dropdown-item').on('click', function (e) {
    var $el = $(this).children('.dropdown-toggle');
    var $parent = $el.offsetParent(".dropdown-menu");
    $(this).parent("li").toggleClass('open');

if (!$parent.parent().hasClass('navbar-nav')) {
    if ($parent.hasClass('show')) {
        $parent.removeClass('show');
        $el.next().removeClass('show');
        $el.next().css({"top": -999, "left": -999});
    } else {
        $parent.parent().find('.show').removeClass('show');
        $parent.addClass('show');
        $el.next().addClass('show');
        $el.next().css({"top": $el[0].offsetTop, "left": $parent.outerWidth() - 4});
    }
    e.preventDefault();
    e.stopPropagation();
}
});

$('.navbar .dropdown').on('hidden.bs.dropdown', function () {
    $(this).find('li.dropdown').removeClass('show open');
    $(this).find('ul.dropdown-menu').removeClass('show open');
});

});

для полного меню вы можете найти здесь

http://blog.adlivetech.com/how-to-make-vertical-menu-with-plus-minus-toggle/

0 голосов
/ 23 декабря 2010
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...