array to ul

遞迴建立 ul

by San-Kai Liao

JavaScript

$(document).ready(function () {
    $('ul.jqueryFileTree').on('count', function (evt) {
        var ul = $(evt.currentTarget);
        ul.find('> li > ul').each(function (rank, obj) {
            var len = $(obj).find('li').length;
            if (len) {
                $(obj).css('border', '0').css('padding', '0');
            } else {
                $(obj).css('border', '1px dashed red').css('padding', '5px');
            }
        });

    });

    function buildTree(nodes, root) {
        $(nodes).each(function (i, node) {
            var type = ($(node.children).length) ? 'expanded' : 'collapsed';
            var li = '';
            li += '<li class="directory ' + type + '">';
            li += '    <a rel="../images/widgetDiv.png">' + node.name + '</a>';
            li += '    <ul class="jqueryFileTree"></ul>';
            li += '</li>';
            li = $(li);
            root.append(li);
            if ($(node.children).length) {
                //  root.find('li:last').append('<ul class="jqueryFileTree"></ul>');
                buildTree($(node.children), root.find('li:last').find('ul.jqueryFileTree'));
            }
            var typeSortableConfig = {
                cursor: "move",
                axis: "y",
                placeholder: "ui-state-highlight",
                connectWith: "ul.jqueryFileTree li > ul.jqueryFileTree",
                items: "> li",
                stop: function (evt, ui) {
                    //console.log(ui.item.parent());
                    // var len = $(ui.item.parent()).find('> li').length;
                    $('ul.jqueryFileTree').trigger('count');
                },
                over: function (evt, ui) {
                    // $('ul.jqueryFileTree li.ui-state-highlight').prev().find('ul.jqueryFileTree').css('height', 22);
                },
                out: function (evt, ui) {
                    //$('ul.jqueryFileTree li.ui-state-highlight').prev().find('ul.jqueryFileTree').css('height','auto');
  ...