jQuery:<3>动画序列和添加节点、删除节点

本文介绍了如何使用jQuery的animate方法自定义动画,包括参数设置、动画序列控制、节点添加与删除技巧,以及在实际场景中的应用实例,如城市选择器和表格操作。

我们学完了基本动画就来看看自定义动画吧,怎样自定义呢?我们可以使用animate()方法,该方法含有四个参数,第一个参数是一个对象,我们可以编写要添加动画的属性变化值,第二个参数是动画时长,第三个是设置为缓动还是匀速,第四个就是回调函数了:

//1.2 为box1制作动画
            $('.box').animate({
                width:200,
                left:400,
                'background-color':'yellow',
                opacity:0.5
            },2000,'swing',function(){
                //1.3 继续延续动画
                $('.box').animate({
                    width:100,
                    height:200,
                    'background-color':'blue',
                    opacity:1,
                    top:200
                },2000,function(){
                    alert('动画执行完毕')
                })

看这段代码,我制作了两个动画,就是在回调函数里面有制作了一个动画,当然你们可以一直制作下去;这里设置背景色这一项是无效的大家记住,我设置的时长是2s,模式为swing也就是缓动,还有一种是匀速linear,回调函数里面又是一个动画,最后在附上动画执行完毕的提示;

至于第一个参数里面的样式键值对,你们想怎么设置都行,我这里就简陋的设置了一下宽度和左边上边的距离,因为如果你想要盒子移动的话是不是可以添加一个定位,绝对定位大家都会加吧;

1、关于动画有一个毛病,当你设置好一个动画之后,疯狂的点击它,然后它可能一致在运作这个动画,点了多少遍就执行多少遍,想听都停不了,这样是不是降低了体验感?

这种现象叫做动画序列,也就是动画排队执行的结果,那么有时候我们不想要怎么办呢?

简单,直接在动画前添加一个方法stop(true,false),这就是用来结束动画的方法。第一个为动画序列是否结束,第二个是是否达到最终效果;

        //3.1 清除box2的动画序列
        $('#btn2').click(function(){
            $('.box2').stop(true,false).slideDown(2000).slideUp(2000)
        });

 可以看到,我多次点击这个动画,第一次点击的时候正常运行,第二次点击的时候会卡一下,如果一直点击就会一直卡在那,这就是删除了序列的现象,这样就能保证每次都只有一个动画执行,就不会出现动画一直执行的现象;如果你对stop()方法的两个参数还感兴趣的话就可以自己去试一试,不同的true false组合出来的效果是不一样的;

2、现在来讲一讲如何添加一个节点,也就是添加标签,在原生js中,我们是怎么添加节点的?

可以使用ducument.write() 也可以使用:innerHtml(),还可以用:ducument.createElement();

单词都挺长的,但是在jQuery中就很简洁:

创建节点:a.html()、$();  前者是写一段标签内容,然后覆盖a标签内容,后者是创建一个节点,要和追加节点的方法一起使用:

五种添加节点的方式:

父元素点出来,元素作为最后一个子元素添加:append()、

子元素点出来,元素作为最后一个子元素添加:appendTo()、

父元素点出来,元素作为第一个子元素添加:prepend(); 这三种用在父子元素之间

兄弟元素点出来,元素放在前面:before()、

兄弟元素点出来,元素放在后面:after(); 这两种用在兄弟元素之间

要注意一点,前者添加元素的时候最好一起添加,不然的话会覆盖原有的内容,后者则不用,所以我们在添加表格内容的时候后者的优越性就很好的体现出来:

  //html
           /*  var list = [];
            for(var i = 0;i<data.length;i++){
                //因为是html设置内容,所以需要我们将所有内容拼接好在加入
                list.push('<tr>')
                for (const key in data[i]) {
                    list.push('<td>')
                    //因为key是遍历对象的三个属性名,所以我们可以使用一下方法填数据
                    list.push(data[i][key])  
                    list.push('</td>')
                }
                list.push('</tr>')
            }

            $('.databody').html(list.join('')) */
            //$()
            for (var i = 0;i<data.length;i++) {
                $('.databody').append('<tr><td>'+data[i]['name']+'</td><td>'+data[i]['link']+'</td><td>'+data[i]['introduce']+'</td></tr>')
            }

被注释的部分是html()方法添加的,使用了一个数列,还用了一个数列转字符串的方法join();两层for循环嵌套加上数列,明显要比后面一层循环麻烦得多,但效果都差不多:

 可以看到当我们点击按钮的时候会出现三条记录,其实也有一点点缺点,就是如果一直点击的话就会一直填加,不过算法不错的可以试试如何做到去重操作;

3、再来讲讲这几种追加节点的方式,其实上面说的比较清楚了,只需要分清楚一个点就可以了,

before()、after(); 这两种用在兄弟元素之间,prepend(),append(),appendTo() 这三种用在父子元素之间:

//5.1 城市选择器,先做全选控件
        $('#move-right').click(function(){
            $('.left-city>option').appendTo('.right-city')
        });
        $('#move-left').click(function(){
            $('.right-city>option').appendTo('.left-city')
        });
        //5.2 制作选中之后的响应函数
        $('#select-right').click(function(){
            $('.left-city>option:selected').appendTo('.right-city')
        });
        $('#select-left').click(function(){
            $('.right-city>option:selected').appendTo('.left-city')
        });

这里之制作了一个城市选择器的小案例,用到的就只有一些追加的操作,如果我们追加的元素已经存在的话,追加就会变成加剪切。

下面是布局:

<h1>城市选择:</h1>
    <div class="city">
        <select class="left-city" multiple>
            <option>上海</option>
            <option>广州</option>
            <option>杭州</option>
            <option>浙江</option>
            <option>北京</option>
        </select>
        <div class="box4">
            <input type="button" value="&gt&gt" id="move-right">
            <input type="button" value="&lt&lt" id="move-left">
            <input type="button" value="&gt" id="select-right">
            <input type="button" value="&lt" id="select-left">
        </div>
        <select class="right-city" multiple></select>
    </div>

下面是css:

.city select{
            height:200px;
            width:100px;
            background-color: aqua;
        }
        .box4{
            width:50px;
            height:100px;
            vertical-align: top;
            display: inline-block;
        }
        .box4 input{
            width:50px;
        }

当然,样式的话随你们设计,好看就行;

不过,我们平时使用的下拉菜单可不是这个样子,试着加上 multiple属性试试;

4、我们知道的追加节点也应该知道删除节点吧,不然的话只有加没有删就让人头皮发麻,好了,我们删除节点也简单:

清除节点的方式

1.html("") 意思就是将内容设置为空,不推荐使用,因为会导致内存泄露,比如响应事件没有事件源

2.empty() 清空父元素的内容,这个就不会造成内存泄漏,因为在删除内容的同时还会删除对应的事件源

3.remove() 自杀式移除,这个是移除自身的的操作,与empty()最大的不同就是empty()不是移除自身

同样,我们也通过一个小程序来看看empty()和remove()的使用和区别:

//6.1 对表格进行删除操作
        $('.box5>#btn4').click(function(){
            //6.2 对表格内容进行清空
            $('.box5 .tb_body').empty();
        });
        //6.2 对每一行数据进行删除,a标签点击事件
        $('.box5 .get').click(function(){
            //6.3 删除父元素的父元素
            $(this).parent().parent().remove();
        });

逻辑:我们点击按钮清空内容,点击表格后面的超链接删除单条数据:

html部分:

<div class="box5">
        <input type="button" value="清空内容" id="btn4">
        <table >
            <tr class="title">
                <td>标题</td>
                <td>简介</td>
                <td>操作</td>
            </tr>
            <tbody class="tb_body">
                <tr>
                    <td>黑猫警长</td>
                    <td>国漫</td>
                    <td><a href="#" class="get">delete</a></td>
                </tr>
                <tr>
                    <td>海贼王</td>
                    <td>日漫</td>
                    <td><a href="#" class="get">delete</a></td>
                </tr>
                <tr>
                    <td>电击小子</td>
                    <td>国漫</td>
                    <td><a href="#" class="get">delete</a></td>
                </tr>
                <tr>
                    <td>流浪地球</td>
                    <td>国产电影</td>
                    <td><a href="#" class="get">delete</a></td>
                </tr>
            </tbody>
        </table>
    </div>

css:

.box5{
            width:200px;
            background-color: pink;
        }
        .box5 .get{
            text-decoration: none;
        }

现象:

 好了,在学习jQuery的过程当中会大量用到html和css的内容,可以看到我们的jQuery语句就那么几条,但是html和css代码就一大堆,所以我们必须要有一点html和css基础才行,那么这期就到这,快去试试吧!

using System; using System.Collections.Generic; using System.Data.Entity; using System.Linq; using System.Web; using System.Web.Mvc; using WebApplication1.Models; using WebApplication1.Scripts; namespace WebApplication1.Controllers { [LoginActionFitter] public class OrgManagemController : Controller { AoutEntities1 db = new AoutEntities1(); ReturnJsonData jsonData = new ReturnJsonData(); Models.ReturnListJsonData orgTreeList = new Models.ReturnListJsonData(); // GET: OrgManagem public ActionResult Index() { return View(); } #region 查询 /// <summary> /// 模糊查询 /// </summary> /// <param name="page"></param> /// <param name="limit"></param> /// <param name="orgname"></param> /// <returns></returns> public ActionResult GetList(int page, int limit, string orgname) { //返回树形表格 List<object> retultlist = new List<object>(); //第一步 查找所有的一级菜单 var list = db.OrganizationStructure.Where(a => a.ParentId == Guid.Empty).ToList(); if (!string.IsNullOrEmpty(orgname)) { list = db.OrganizationStructure.Where(a => a.OrgName.Contains(orgname)).ToList(); foreach (var itme in list) { ReturnTreeListData obj = new ReturnTreeListData(); obj.ID = itme.ID; obj.parentId = itme.ParentId; obj.name = itme.OrgName; obj.OrgCode = itme.OrgCode; obj.Leve = itme.Leve; obj.CreateDate = itme.CreateDate; obj.ModifyDate = itme.ModifyDate; //验证是否还有有子集 obj.isParent = false; obj.children = null; retultlist.Add(obj); } } else { list = db.OrganizationStructure.Where(a => a.ParentId == Guid.Empty).ToList(); //循环 foreach (var itme in list) { ReturnTreeListData obj = new ReturnTreeListData(); obj.ID = itme.ID; obj.parentId = itme.ParentId; obj.name = itme.OrgName; obj.OrgCode = itme.OrgCode; obj.Leve = itme.Leve; obj.CreateDate = itme.CreateDate; obj.ModifyDate = itme.ModifyDate; //验证是否还有有子集 obj.isParent = db.OrganizationStructure.Where(a => a.ParentId == itme.ID).ToList().Count > 0 ? true : false; if (obj.isParent == true) { //查找所以子集 obj.children = BuildTree(list, itme.ID); } retultlist.Add(obj); } } orgTreeList.code = 0; orgTreeList.count = list.Count; orgTreeList.data = retultlist; return Json(orgTreeList, JsonRequestBehavior.AllowGet); } #endregion public ActionResult GetEditData(Guid nodeId) { var current = db.OrganizationStructure.Find(nodeId); if (current == null) return Json(new { success = false }); // 总公司的ParentId为null或自身(假设总公司ParentId=0或null) var isRoot = current.ParentId == null || current.ParentId == Guid.Empty; var parent = isRoot ? current : db.OrganizationStructure.Find(current.ParentId); return Json(new { parentName = parent.OrgName, parentCode = parent.OrgCode, level = current.Leve, orgName = current.OrgName, orgCode = current.OrgCode, ID = current.ID, parentID = current.ParentId, }, JsonRequestBehavior.AllowGet); } #region 递归调用 /// <summary> /// 递归调用 /// </summary> /// <param name="list"></param> /// <param name="ID"></param> /// <returns></returns> private List<object> BuildTree(List<OrganizationStructure> list, Guid ID) { List<object> Treelist = new List<object>(); List<OrganizationStructure> childList = db.OrganizationStructure.Where(a => a.ParentId == ID).ToList(); //循环 foreach (var itme in childList) { ReturnTreeListData obj = new ReturnTreeListData(); obj.ID = itme.ID; obj.parentId = itme.ParentId; obj.name = itme.OrgName; obj.OrgCode = itme.OrgCode; obj.Leve = itme.Leve; obj.CreateDate = itme.CreateDate; obj.ModifyDate = itme.ModifyDate; obj.isParent = db.OrganizationStructure.Where(a => a.ParentId == itme.ID).ToList().Count > 0 ? true : false; obj.children = BuildTree(childList, itme.ID); Treelist.Add(obj); } return Treelist; } #endregion #region 新增组织机构 /// <summary> /// 新增,修改 /// </summary> /// <returns></returns> public ActionResult Add(OrganizationStructure org) { org.ID = Guid.NewGuid(); org.Leve = 0; org.ParentId = Guid.Empty; org.CreateDate = DateTime.Now; org.ModifyDate = DateTime.Now; db.OrganizationStructure.Add(org); var result = db.SaveChanges(); if (result > 0) { jsonData.code = 0; jsonData.msg = "新增组织机构成功"; } else { jsonData.code = 1; jsonData.msg = "新增失败,请联系管理员"; } return Json(jsonData, JsonRequestBehavior.AllowGet); } #endregion #region 删除 /// <summary> /// 删除操作 /// </summary> /// <param name="id"></param> /// <returns></returns> public ActionResult DelInfo(Guid? id) { if (id == null) { jsonData.code = 1; jsonData.msg = "删除失败,未找到当行数据"; } else { //删除 var entity = db.OrganizationStructure.Find(id); if (entity == null) { jsonData.code = 1; jsonData.msg = "删除失败,未找到当前行数据"; } else { db.OrganizationStructure.Remove(entity); var result = db.SaveChanges(); if (result > 0) { jsonData.code = 0; jsonData.msg = "删除成功"; } else { jsonData.code = 1; jsonData.msg = "删除失败,请联系管理员"; } } } return Json(jsonData, JsonRequestBehavior.AllowGet); } #endregion #region 新增修改 /// <summary> /// 新增,修改 /// </summary> /// <returns></returns> public ActionResult AddTreeInfo(string neworgname, string neworgcode, OrganizationStructure org, Guid?ID, Guid ParentId) { if (ID == null || ID == Guid.Empty) { // 新增逻辑:parentId为父节点ID(新增时需传递) var newOrg = new OrganizationStructure { ID = Guid.NewGuid(), ParentId = ParentId, OrgName = neworgname, OrgCode = neworgcode, Leve = org.Leve, CreateDate = DateTime.Now, ModifyDate = DateTime.Now }; db.OrganizationStructure.Add(newOrg); } else { // 编辑逻辑:通过ID查找当前行(确保是当前行,而非总公司,依赖ID唯一性) var entity = db.OrganizationStructure.Find(ID); if (entity != null) { entity.OrgName = neworgname; entity.OrgCode = neworgcode; entity.Leve = org.Leve; entity.ModifyDate = DateTime.Now; db.Entry(entity).State = EntityState.Modified; } } var result = db.SaveChanges(); if (result > 0) { jsonData.code = 0; jsonData.msg = "保存成功"; } else { jsonData.code = 1; jsonData.msg = "保存失败,请联系管理员"; } return Json(jsonData, JsonRequestBehavior.AllowGet); } #endregion } } @{ Layout = null; } <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1"> <title>Demo</title> <!-- 请勿在项目正式环境中引用该 layui.css 地址 --> <link href="~/Scripts/layui/css/layui.css" rel="stylesheet" /> <script src="~/Scripts/layui/layui.js"></script> <script src="~/Scripts/jquery-3.4.1.js"></script> <style> body { padding: 10px 20px 20px 20px; width: 90% } .editInfo { display: none; } .addeditInfo { display: none; } .addorgfrom { border-radius: 8px; width: 400px; max-width: 100%; padding: 0px 35px 0; margin: auto; position: absolute; top: 60%; left: 55%; margin: -120px 0 0 -230px; } .addform { border-radius: 8px; width: 400px; max-width: 100%; padding: 0px 35px 0; margin: auto; position: absolute; top: 40%; left: 54%; margin: -120px 0 0 -230px; } .layui-form-item { margin-left: -31px; } </style> </head> <body> <fieldset class="layui-elem-field"> <legend> <span class="layui-breadcrumb"> <a href="/Home/Index">首页</a> <a href="/JobManagem/Index">组织机构管理管理</a> </span> </legend> <div class="layui-field-box"> <div class="layui-form-item"> <div class="layui-inline"> <label class="layui-form-label" style="width:90px;">组织机构名称</label> <div class="layui-input-block" style="margin-left:120px"> <input type="text" name="orgname" id="name" autocomplete="off" class="layui-input"> </div> </div> <button type="button" class="layui-btn layui-btn but" style=" margin-bottom: 4px;" id="searchButton" onclick="Search()"><i class="layui-icon layui-icon-search"></i>查询</button> <button type="button" class="layui-btn layui-bg-blue but" style=" margin-bottom: 4px;" onclick="Add()"><i class="layui-icon layui-icon-addition"></i>添加</button> </div> </div> </fieldset> <table class="layui-hide" id="ID-treeTable-demo" lay-filter="test"></table> <script type="text/html" id="TPL-treeTable-demo-tools"> <div class="layui-btn-container"> <a class="layui-btn layui-btn-warm layui-btn-xs" lay-event="add"><i class="layui-icon layui-icon-add-circle"></i>新增</a> <a class="layui-btn layui-bg-blue layui-btn-xs" lay-event="edit"><i class="layui-icon layui-icon-edit"></i>编辑</a> <a class="layui-btn layui-bg-red layui-btn-xs" lay-event="del"><i class="layui-icon layui-icon-delete"></i>删除</a> </div> </script> <div class="editInfo"> <form class="layui-form layui-form-pane addorgfrom" action="" lay-filter="demo-val-filter"> <input type="hidden" name="ID" /> <div class="layui-form-item"> <label class="layui-form-label" style="width:130px">组织机构名称</label> <div class="layui-input-block"> <input type="text" name="orgname" autocomplete="off" placeholder="请输入组织机构名称" lay-verify="required" class="layui-input" style="width:87%"> </div> </div> <div class="layui-form-item"> <label class="layui-form-label" style="width:130px">组织机构代码</label> <div class="layui-input-block"> <input type="text" name="orgcode" autocomplete="off" placeholder="请输入组织机构代码" lay-verify="required" class="layui-input" style="width:87%"> </div> </div> <div class="layui-form-item" style="text-align:center" id="but"> <div class="layui-input-block" style="margin-left:-53px;padding:10px"> <button type="submit" class="layui-btn" lay-submit lay-filter="demo1" id="add" style="margin:10px">保存</button> <button type="reset" class="layui-btn layui-btn-primary" style="margin-left:30px;">重置</button> </div> </div> </form> </div> @*表格内的新增*@ <div class="addeditInfo"> <form class="layui-form layui-form-pane addform" action="" lay-filter="demo-val-filter"> <input type="hidden" name="ID" /> <input type="hidden" name="ParentId" /> <div class="layui-form-item"> <label class="layui-form-label" style="width:130px">上一级菜单名称</label> <div class="layui-input-block"> <input type="text" name="orgname" autocomplete="off" disabled="disabled" placeholder="请输入组织机构名称" lay-verify="required" class="layui-input" style="width:87%"> </div> </div> <div class="layui-form-item"> <label class="layui-form-label" style="width:130px">上一级菜单代码</label> <div class="layui-input-block"> <input type="text" name="orgncode" autocomplete="off" disabled="disabled" placeholder="请输入组织机构名称" lay-verify="required" class="layui-input" style="width:87%"> </div> </div> <div class="layui-form-item"> <label class="layui-form-label" style="width:120px">当前级别</label> <div class="layui-input-block" style="margin-left: 121px;width:289px"> <select name="leve" lay-verify="required"> <option value="">请选择级别</option> <option value="0">集团总部</option> <option value="1">分公司</option> <option value="2">部门</option> <option value="3">其他</option> </select> </div> </div> <div class="layui-form-item"> <label class="layui-form-label" style="width:120px">组织机构名称</label> <div class="layui-input-block"> <input type="text" name="neworgname" autocomplete="off" placeholder="请输入组织机构名称" lay-verify="required" class="layui-input" style="width:90%"> </div> </div> <div class="layui-form-item"> <label class="layui-form-label" style="width:120px">组织机构代码名称</label> <div class="layui-input-block"> <input type="text" name="neworgcode" autocomplete="off" placeholder="请输入组织机构代码名称" lay-verify="required" class="layui-input" style="width:90%"> </div> </div> <div class="layui-form-item" style="text-align:center" id="but"> <div class="layui-input-block" style="margin-left:-53px;padding:10px"> <button type="submit" class="layui-btn" lay-submit lay-filter="demo2" id="add" style="margin:10px">保存</button> <button type="reset" class="layui-btn layui-btn-primary" style="margin-left:30px;">重置</button> </div> </div> </form> </div> <script> var SearchtreeTable; layui.use([&#39;form&#39;, &#39;table&#39;], function () { var table = layui.table; var treeTable = layui.treeTable; var layer = layui.layer; var form = layui.form; // 渲染 var inst = treeTable.render({ elem: &#39;#ID-treeTable-demo&#39;, url: &#39;/OrgManagem/GetList&#39;, // 此处为静态模拟数据,实际使用时需换成真实接口 cols: [[ { type: &#39;checkbox&#39;, }, { field: &#39;ID&#39;, title: &#39;ID&#39;, hide: true }, // 隐藏但保留数据 { field: &#39;ParentId&#39;, title: &#39;父ID&#39;, hide: true }, // 隐藏但保留数据 { field: &#39;name&#39;, title: &#39;组织机构名称&#39;, width: &#39;30%&#39;, }, { field: &#39;OrgCode&#39;, title: &#39;组织机构代码&#39;, width: &#39;30%&#39;, sort: true }, { field: &#39;Leve&#39;, title: &#39;级别&#39;, width: &#39;20%&#39;, sort: true, templet: function (d) { switch (d.Leve) { case 0: return "集团总部"; break; case 1: return "分公司"; break; case 2: return "部门"; break; default: return "其他"; break; } } }, { title: "操作", width: &#39;16%&#39;, align: "center", toolbar: "#TPL-treeTable-demo-tools" } ]], tree: { iconIndex: 1, // 图标显示在第 2 列(对应“组织机构名称”列,索引从 0 开始) isParent: &#39;isParent&#39;, // 绑定后台的 `isParent` 字段(标识是否有子节点) // 删除 async 配置!后台已返回完整 children 数组,无需异步加载 }, page: true }); SearchtreeTable = inst; //编辑,删除 table.on(&#39;tool(test)&#39;, function (obj) { // 双击 toolDouble var data = obj.data; // 获得当前行数据 // console.log(obj) if (obj.event === &#39;add&#39;) { //新增子集 layer.open({ type: 1, // page 层类型 area: [&#39;550px&#39;, &#39;480px&#39;], title: &#39;新增组织机构&#39;, shade: 0.6, // 遮罩透明度 shadeClose: false, // 点击遮罩区域,关闭弹层 maxmin: false, // 允许全屏最小化 anim: 0, // 0-6 的动画形式,-1 不开启 content: $(".addeditInfo").html() }); //赋值 form.val(&#39;demo-val-filter&#39;, { "orgname": data.name, "orgncode": data.OrgCode, "ID": null, "ParentId": data.ID }); } else if (obj.event === &#39;edit&#39;) { //编辑 //修改编辑职位 layer.open({ type: 1, area: [&#39;550px&#39;, &#39;480px&#39;], title: &#39;编辑组织机构&#39;, shade: 0.6, // 遮罩透明度 shadeClose: false, // 点击遮罩区域,关闭弹层 maxmin: false, // 允许全屏最小化 anim: 0, // 0-6 的动画形式,-1 不开启 content: $(&#39;.addeditInfo&#39;).html(), success: function () { $.ajax({ url: &#39;/OrgManagem/GetEditData&#39;, data: { nodeId: data.ID }, success: function (res) { // 填充数据,处理父节点不存在的情况 form.val(&#39;demo-val-filter&#39;, { "orgname": res.parentName || data.name, // 父节点不存在时显示自身名称 "orgncode": res.parentCode || data.orgCode, // 父节点不存在时显示自身代码 "leve": res.level, "neworgname": data.name, "neworgcode": data.OrgCode, "ID": res.ID, "ParentId": res.parentID }); } }); } }); } else { layer.confirm(&#39;真的删除行 [&#39; + data.name + &#39;] 么&#39;, function (index) { obj.del(); // 删除对应行(tr)的DOM结构 layer.close(index); // 向服务端发送删除指令 $.ajax({ url: &#39;/OrgManagem/DelInfo&#39;, type: &#39;post&#39;, data: { id: data.ID }, success: function (res) { if (res.code == 0) { layer.msg(res.msg, { icon: 6, time: 1500 }, function () { Search(); }) } else { layer.msg(res.msg, { icon: 5, time: 1500 }) } } }) }); } }); // 提交事件 form.on(&#39;submit(demo1)&#39;, function (data) { var field = data.field; // 获取表单字段值 // 此处可执行 Ajax 等操作 $.ajax({ url: &#39;/OrgManagem/Add&#39;, type: &#39;post&#39;, data: field, success: function (res) { if (res.code == 0) { layer.msg(res.msg, { icon: 6, time: 3000 }, function () { layer.closeAll(); // 关闭所有类型的层 Search(); }); } else { layer.msg(res.msg, { icon: 5, time: 2000 }); } } }) return false; // 阻止默认 form 跳转 }); // 提交事件 form.on(&#39;submit(demo2)&#39;, function (data) { var field = data.field; // 获取表单字段值 var leve = data.leve; var ParentId = data.ParentId; // 此处可执行 Ajax 等操作 $.ajax({ url: &#39;/OrgManagem/AddTreeInfo&#39;, type: &#39;post&#39;, data: field, leve, ParentId, success: function (res) { if (res.code == 0) { layer.msg(res.msg, { icon: 6, time: 3000 }, function () { layer.closeAll(); // 关闭所有类型的层 Search(); }); } else { layer.msg(res.msg, { icon: 5, time: 2000 }); } } }) return false; // 阻止默认 form 跳转 }); }); //重载,模糊查询 function Search() { var nameVal = $(&#39;input[name="orgname"]&#39;).val().trim(); // 完整重载 - 所有属性属性(options)均可参与到重载中 SearchtreeTable.reload({ where: { // 传递数据异步请求时携带的字段 orgname: nameVal, }, height: 500 // 重设高度 }); } //添加 function Add() { // 在此处输入 layer 的任意代码 layer.open({ type: 1, // page 层类型 area: [&#39;550px&#39;, &#39;350px&#39;], title: &#39;新增组织机构&#39;, shade: 0.6, // 遮罩透明度 shadeClose: true, // 点击遮罩区域,关闭弹层 maxmin: true, // 允许全屏最小化 anim: 0, // 0-6 的动画形式,-1 不开启 content: $(".editInfo").html() }); } </script> </body> </html>按照这中代码格式风格写出上面的添加编辑
最新发布
07-15
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

编程学渣ズ

谢谢老板

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值