没有合适的资源?快使用搜索试试~ 我知道了~
首页layui-tree实现Ajax异步请求后动态添加节点的方法
资源详情
资源评论
资源推荐

layui-tree实现实现Ajax异步请求后动态添加节点的方法异步请求后动态添加节点的方法
今天小编就为大家分享一篇layui-tree实现Ajax异步请求后动态添加节点的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
最近在弄一个产品分类管理,是一个树形菜单的形式,用的是layui-tree ,由于它并没有动态添加节点,所以只能自己刚了。
大概效果如图
体的实现是当我鼠标移入“长袖”这个分类时,出现三个icon (如图),按“增加”按钮,会发送ajax异步请求到后台,在数据库库中增加以“长袖”为父类id 的一个子分类,成功后返回到前台,然后相应的节点下
动态添加子节点,主要是通过append 来增加html元素
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>多级分类管理</title>
<meta name="renderer" content="webkit">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<meta name="format-detection" content="telephone=no">
<link rel="stylesheet" type="text/css"
href="layui/css/layui.css" rel="external nofollow" media="all">
</head>
<style>
.panel {
margin-bottom: 0;
}
i{
cursor: pointer !important ;
cursor: hand !important;
}
body{
}
a:hover{
background-color:#E6E6E6 ;
}
.active{
background:#E6E6E6;
}
.hide{
display:none;
}
</style>
<body style="height:100%;">
<div style="height:100%;">
<div class="panel panel-default"
style=" position:fixed; width: 250px; height:800px; overflow:auto;">
<div class="panel-body" style=" ">
<h4 style="text-align: center;">分类管理</h4>
<ul unselectable="on" id="demo"
style="margin-top: 30px; -moz-user-select: none; -webkit-user-select: none;"
onselectstart="return false;" ></ul>
<button id="addcate" class="layui-btn layui-btn-primary" style="margin-top:20px; margin-left:28px; width:70%;">添加分类</button>
</div>
</div>
</div>
<script type="text/javascript" src="layui/layui.js"></script>
<script type="text/javascript">
layui.use(['jquery','layer','element','form','tree'],function(){
window.jQuery = window.$ = layui.jquery;
window.layer = layui.layer;
var form = layui.form;
var elem = layui.element;
var topcateid=0; //为模拟顶级分类id用
//初始化layer.tree
var tree = layui.tree({
elem: '#demo',
nodes:[] //这里可以通过后台获取(如ThinkPHP框架则可以通过后台拼接好,再生成模板变量类似{$tree}就可以)
});
window.onload=function(){
//删除layui-tree 自带的样式
$("i.layui-tree-branch").remove();
$("i.layui-tree-leaf").remove();
//添加操作的图标(即鼠标划过时显示的添加,修改,删除的按钮组)
$("ul#demo").find("a").after("<i class='layui-icon add select hide ' )'></i>"+
"<i class='layui-icon edit select hide'></i>"+
"<i class='layui-icon del select hide'></i>");
}
//添加顶级分类
$("#addcate").on("click",function(){
layer.prompt({title: '输入分类名称,并确认', formType:0}, function(text, index){
layer.close(index);
//TODO 可以ajax到后台操作,这里只做模拟
layer.load(2);
setTimeout(function(){
layer.closeAll("loading");
//手动添加节点,肯定有更好的方法=.=!这里的方法感觉有点LOW
// li里面的pid属性为父级类目的id,顶级分类的pid为0
topcateid= topcateid+1;
$("ul#demo").append("<li pid='0' id="+(topcateid)+">"+
"<a ><cite>"+text+"</cite> </a>"+
"<i class='layui-icon select hide add'></i>"+
"<i class='layui-icon edit select hide'></i>"+
"<i class='layui-icon del select hide'></i>"+
"</li>");
},1000)
});
})
//显示/隐藏 分类的操作栏
$("ul#demo").on({
mouseover: function(event) {
event.stopPropagation();
$(this).children(".select").removeClass("hide")
},
mouseout: function(event) {
event.stopPropagation();

















安全验证
文档复制为VIP权益,开通VIP直接复制

评论0