递归-树形文件目录

// 一级目录标题
function level1Title(name) {
  return (
    '<p class="show-detail" onclick = "showChildren(this)">' +
    '<span class="triangle triangle-left"></span>' +
    name +
    "</p>"
  );
}

// 一级目录下的链接
function level1TitleItem(href, name) {
  return (
    '<li class="files-tree-item-level2">' +
    '<span class="selected-out">' +
    '<span class="selected-in"></span>' +
    "</span>" +
    '<a class="nounderline" href="' +
    href +
    '" download="' +
    name +
    '">' +
    name +
    "</a>" +
    "</li>"
  );
}

// 文件目录处理
function calalog(arr) {
  for (var i = 0; i < arr.length; i++) {
    str += "<li class='files-tree-item'>" + level1Title(arr[i].nodeName);
    if (arr[i].childNodeList && arr[i].childNodeList.length > 0) {
      sigalStr = "";
      sigalCalalog(arr[i].childNodeList);
      str += sigalStr;
      str += "</li>";
    } else {
      str += "</li>";
    }
  }
  $(".files-tree").append(str);
}

// 多级目录
function sigalCalalog(arr) {
  sigalStr += "<ul class='show-more'>";
  for (var i = 0; i < arr.length; i++) {
    if (arr[i] && arr[i].childNodeList && arr[i].childNodeList.length > 0) {
      sigalStr += "<li class='files-tree-item'>" + level1Title(arr[i].nodeName);
      sigalCalalog(arr[i].childNodeList);
      sigalStr += "</li>";
    } else {
      sigalStr += level1TitleItem(arr[i].fileUri, arr[i].nodeName);
    }
  }
  sigalStr += "</ul>";
}
//显示&&隐藏子目录
function showChildren(that) {
  var showMore = $(that).next();
if (showMore.css("display") === "none") {
  showMore.css("display", "block");
} else {
  showMore.css("display", "none");
}
  var showIcon = $(that).find($(".triangle"));
  var showIconClasses = showIcon.attr("class");
if (showIconClasses.indexOf("triangle-left") > 0) {
  showIcon.removeClass("triangle-left");
  showIcon.addClass("triangle-bottom");
} else {
  showIcon.addClass("triangle-left");
  showIcon.removeClass("triangle-bottom");
  }
}
 

 

posted @ 2018-02-13 16:55  巫瞅瞅  阅读(499)  评论(0编辑  收藏  举报