iis服务器助手广告广告
返回顶部
首页 > 资讯 > 前端开发 > JavaScript >Bootstrap table列上下移动效果
  • 244
分享到

Bootstrap table列上下移动效果

2024-04-02 19:04:59 244人浏览 安东尼
摘要

本文实例为大家分享了Bootstrap table列上下移动效果的具体代码,供大家参考,具体内容如下 排序 1. 按钮排序 点击排序按钮,页面的序号变为可点击的方向键,实现手动排序(

本文实例为大家分享了Bootstrap table列上下移动效果的具体代码,供大家参考,具体内容如下

排序

1. 按钮排序

点击排序按钮,页面的序号变为可点击的方向键,实现手动排序(第一行没有下箭头,最后一行没有上尖头)

实现方式

1.击则“编辑”,改变内容

<button class="btn btn-info editBtn" style="display:inline-block" onclick="handleTableEditBtn(this)">编辑</button>
<button class="btn btn-primary saveBtn" style="display:none" onclick="handleTableEditBtn(this)">保存</button>
     
   var handleTableEditBtn = function(el){
    "use strict";
    if(el){ // TODO 保存到服务器
        var $el = $(el);
        var $tr = $el.closest("tr");
        var rowspanNum = $tr.data("rowspanNum");
        var btnOption = $el.closest(".tableOptionBtnBox").data("btn");
        var tableOptionBtnBox = $el.closest(".tableOptionBtnBox");
        var $editBtn = $el.closest(".tableOptionBtnBox").find(".editBtn");
        if(btnOption){ // 编辑状态 -> 查看状态
            $el.attr("disabled",true);
            updateAppDataDialog($el);

        }else{ // 查看状态 -> 编辑状态 检查当前APP是否可编辑
            $editBtn.attr("disabled",true);
            checkUpdateAppDataStatus().done(function () {
                $editBtn.attr("disabled",false);
                tableOptionBtnBox.data("btn", 1);
                tableOptionBtnBox.find(".saveBtn").show();
                tableOptionBtnBox.find(".editBtn").hide();
                nextElements($tr, rowspanNum, handleNotEditable);
            }).fail(function () {
                $editBtn.attr("disabled",false);
            });
        }
    }
};  

2.首位行的特殊显示

 // 当点击第一行的⬇时,该行显示两个按钮,目标行显示一个按钮
    if (oldId == 1 && dir == 1) {
        // 共两行,该行显示一个按钮,目标行显示一个按钮
        if (total == 2) {
            $tr.find(".upImgBtn").show();
            $tr.find(".downImgBtn").hide();
            var $nextTr = $(el).parents("tr").next("tr");
            $nextTr.find(".upImgBtn").hide();
            $nextTr.find(".downImgBtn").show();
        } else {
            $tr.find(".upImgBtn").show();
            $tr.find(".downImgBtn").show();
            var $nextTr = $(el).parents("tr").next("tr");
            $nextTr.find(".upImgBtn").hide();
            $nextTr.find(".downImgBtn").show();
        }
    }

    // 当点击第二行的⬆时,该行显示一个按钮,目标行显示两个按钮
    else if (oldId == 2 && dir == 0) {
        if (total == 2) {
            $tr.find(".upImgBtn").hide();
            $tr.find(".downImgBtn").show();
            var $nextTr = $(el).parents("tr").prev("tr");
            $nextTr.find(".upImgBtn").show();
            $nextTr.find(".downImgBtn").hide();
        } else {
            $tr.find(".upImgBtn").hide();
            $tr.find(".downImgBtn").show();
            var $nextTr = $(el).parents("tr").prev("tr");
            $nextTr.find(".upImgBtn").show();
            $nextTr.find(".downImgBtn").show();
        }
    }

    // 当点击倒数第二行的⬇时,该行显示一个按钮,目标行显示两个按钮
    else if (oldId == total - 1 && dir == 1) {
        $tr.find(".upImgBtn").show();
        $tr.find(".downImgBtn").hide();
        var $nextTr = $(el).parents("tr").next("tr");
        $nextTr.find(".upImgBtn").show();
        $nextTr.find(".downImgBtn").show();
    }

    // 当点击倒数第一行的⬆时,该行显示两个按钮,目标行显示一个按钮
    else if (oldId == total && dir == 0) {
        $tr.find(".upImgBtn").show();
        $tr.find(".downImgBtn").show();
        var $nextTr = $(el).parents("tr").prev("tr");
        $nextTr.find(".upImgBtn").show();
        $nextTr.find(".downImgBtn").hide();
    }

3.上移下移

 // 目标行
    var $targetTr;

    // 特殊处理(首行下移)
    if ($div.attr("data-rowid") == 1 && dir == 1) {
        $tr.find(".rowNum").find(".rowNumClass").attr("data-rowid", 2);
        $tr.data("rowspanNum",total);
        var str = $tr.html();
        var start = str.indexOf("</td>") + 5;
        var end = str.lastIndexOf("<td")
        // 第一行头部
        var startPart = str.substring(0, start);

        // 第一行尾部
        var endPart = str.substring(str.lastIndexOf("<td"));

        // 第一行中部
        var oneLine = str.substring(start, end);//截取字符串

        // 第二行
        $targetTr = $(el).parents("tr").next("tr");
        $targetTr.find(".rowNum").find(".rowNumClass").attr("data-rowid", 1);
        var twoLine = $targetTr.html();

        var result1 = startPart + twoLine + endPart;
        var result2 = oneLine

        $tr.html(result1);
        $targetTr.html(result2);

        var data = $targetTr.find("td").eq(3).find(".editable").find("input").val();
        var editable = "";
        if (data == 0) {
            editable += '<input value=0 type="checkbox" class="js-switch fORM-control" checked name="openStatus">';
        } else {
            editable += '<input value=1 type="checkbox" class="js-switch form-control" name="openStatus">';
        }
        $targetTr.find("td").eq(2).find(".editable").html(editable);

        $targetTr.before("<tr>" + $tr.html() + "</tr>")
        // $targetTr.insertBefore
        $targetTr.data("updatedSort", true);
        // $targetTr.closest(".tableOptionBtnBox").attr("btn", 1);
        $tr.remove();
        // return;
    }
    // 特殊处理(第二行上移)
    // else if ($div.data("rowid") == 2 && dir == 0) {
    else if ($div.attr("data-rowid") == 2 && dir == 0) {
        // 第一行
        $targetTr = $(el).parents("tr").prev("tr");
        $targetTr.data("rowspanNum",total);

        var data = $tr.find("td").eq(3).find(".editable").find("input").val();
        var editable = "";
        if (data == 0) {
            editable += '<input value=0 type="checkbox" class="js-switch form-control" checked name="openStatus">';
        } else {
            editable += '<input value=1 type="checkbox" class="js-switch form-control" name="openStatus">';
        }
        $tr.find("td").eq(2).find(".editable").html(editable);

        var data = $tr.find("td").eq(2).find(".editable").find("input").val();
        var editable = "";
        if (data == 0) {
            editable += '<input value=0 type="checkbox" class="js-switch form-control" checked name="openStatus">';
        } else {
            editable += '<input value=1 type="checkbox" class="js-switch form-control" name="openStatus">';
        }
        $tr.find("td").eq(2).find(".editable").html(editable);

        var str = $targetTr.html();
        var start = str.indexOf("</td>") + 5;
        var end = str.lastIndexOf("<td")
        // 第一行头部
        var startPart = str.substring(0, start);
        // 第一行尾部
        var endPart = str.substring(str.lastIndexOf("<td"));
        // 第一行中部
        var oneLine = str.substring(start, end);//截取字符串

        // 第二行
        var twoLine = $tr.html();

        var result1 = startPart + twoLine + endPart;
        var result2 = oneLine
        $tr.html(result1);
        $targetTr.html(result2);
        $targetTr.before("<tr>" + $tr.html() + "</tr>")
        $targetTr.data("updatedSort", true);
        // $targetTr.closest(".tableOptionBtnBox").attr("btn", 1);
        $tr.remove();
    }
    // 上移
    else if (dir == 0) {
        $targetTr = $(el).parents("tr").prev("tr");

        var data = $tr.find("td").eq(2).find(".editable").find("input").val();
        var editable = "";
        if (data == 0) {
            editable += '<input value=0 type="checkbox" class="js-switch form-control" checked name="openStatus">';
        } else {
            editable += '<input value=1 type="checkbox" class="js-switch form-control" name="openStatus">';
        }
        $tr.find("td").eq(2).find(".editable").html(editable);

        $targetTr.before("<tr>" + $tr.html() + "</tr>");
        $targetTr.data("updatedSort", true);
        $tr.remove();
    }
    // 下移
    else {
        $targetTr = $(el).parents("tr").next("tr");

        var data = $targetTr.find("td").eq(2).find(".editable").find("input").val();
        var editable = "";
        if (data == 0) {
            editable += '<input value=0 type="checkbox" class="js-switch form-control" checked name="openStatus">';
        } else {
            editable += '<input value=1 type="checkbox" class="js-switch form-control" name="openStatus">';
        }
        $targetTr.find("td").eq(2).find(".editable").html(editable);

        $tr.before("<tr>" + $targetTr.html() + "</tr>");
        $tr.data("updatedSort", true);
        $targetTr.remove();

2. 模态框排序

点击排序时,弹出模态框

该方法为bootstrap自带方法,可是找遍全网也没看到示例,不确定是不是被新版本删除掉了。但还是比较实用的。

实现方式

需提前导入 bootstrap-order.min.js

function initSortEvent(index) {

    $("#btn-order").click(function () {

        var numDatas = "";
        var nameDatas = "";
        var data = index.getData();

        $.each(data,function(d_index){
            numDatas=numDatas+ data[d_index].num+",";
            nameDatas=nameDatas+ data[d_index].name+",";
        });
        $.ajax({
            url: contextPath+"/oper/iOS/config/sort",
            type: "post",
            dataType: "JSON",
            cache: false,
            async: false,
            data: {"numDatas":numDatas,"nameDatas":nameDatas},
            success: function (d) {
                if(d.code==200){
                    dataTable.ajax.reload();
                }else{
                    console.log("排序失败");
                }
            }
        });
        index.hide();
    });
    $('#content').on("click", function (){
        index.hide();
    });
    $('#sidebar').on("click", function (){
        index.hide();
    });
    $('#showSourceSort').on('click',function (event) {
        event.stopPropagation();//阻止事件冒泡
        $("#ios-config-table").find("tr").each(function (i) {
            var status = $(this).find(".options").data("status");
            // 只排序启用状态
            if (i > 0 && status == 0) {
                var order = $(this).find('td').eq(0).html();
                var title = $(this).find('td').eq(1).find('span').html();
                index.addItem({id: order, name: title, num: parseInt(order)})
                // addSort({id: order, name: title, num: parseInt(order)}, index)
            }
        });
        index.toggleShow();
    });
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程网。

--结束END--

本文标题: Bootstrap table列上下移动效果

本文链接: https://www.lsjlt.com/news/139975.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Bootstrap table列上下移动效果
    本文实例为大家分享了Bootstrap table列上下移动效果的具体代码,供大家参考,具体内容如下 排序 1. 按钮排序 点击排序按钮,页面的序号变为可点击的方向键,实现手动排序(...
    99+
    2024-04-02
  • 微信小程序实现列表项上移下移效果
    本文实例为大家分享了微信小程序实现列表项上移下移的具体代码,供大家参考,具体内容如下 需要实现的效果:点击向下按钮时所选项内容和下一项内容交换,向上按钮则相反,删除按钮则点击时删除所...
    99+
    2024-04-02
  • Vue实现table列表项上下移动的示例代码
    结合Element组件,scope中有三个参数(row,cow,$index)分别表示行内容、列内容、以及此行索引值, table上绑定数组 :data=“newsLis...
    99+
    2023-05-16
    Vue table列表项上下移动 Vue table上下移动
  • layui加JQuery怎么实现上下移动效果
    这篇“layui加JQuery怎么实现上下移动效果”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看...
    99+
    2024-04-02
  • 小程序如何实现列表滚动上下联动效果
    这篇文章主要为大家展示了“小程序如何实现列表滚动上下联动效果”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“小程序如何实现列表滚动上下联动效果”这篇文章吧。1、背景最近在做公司的一款小程序,其中有...
    99+
    2023-06-22
  • 如何实现移动端Ionic App资讯上下循环滚动效果
    这篇文章给大家分享的是有关如何实现移动端Ionic App资讯上下循环滚动效果的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。这里借助了jQuery库的选择器和动画函数,并且把jq...
    99+
    2024-04-02
  • JQuery实现Table的tr上移下移功能
    本文实例为大家分享了JQuery实现Table的tr上移下移的具体代码,供大家参考,具体内容如下 今日份需求:实现表格行的上移下移,并更新排序值,效果如下: 话不多说直接上代码,J...
    99+
    2024-04-02
  • Element table 上下移需求的实现
    目录前言思路梳理这么多细节问题,产品经理咋不讲清楚写明白呢,喷他!和产品经理一波 battle 后的结果问题清楚了开始复制粘贴,啊呸!来让我们开始改变世界表格数据行拖动上下移表格数据...
    99+
    2024-04-02
  • Element-UI Table组件上如何添加列拖拽效果
    这篇文章将为大家详细讲解有关Element-UI Table组件上如何添加列拖拽效果,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。Element-UI 的 Table 组...
    99+
    2024-04-02
  • 如何使用CSS和Bootstrap图标制作上下跳动的指示箭头动画效果
    小编给大家分享一下如何使用CSS和Bootstrap图标制作上下跳动的指示箭头动画效果,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!HTML:添加一个链接,可修改...
    99+
    2023-06-08
  • css怎么实现上下运动效果
    本篇内容介绍了“css怎么实现上下运动效果”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成! ...
    99+
    2024-04-02
  • Vue如何实现列表上下过渡效果
    这篇文章主要介绍Vue如何实现列表上下过渡效果,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!最终效果某列的数据由 X 位置上升到 Y 位置的过渡效果技术点 visibility: h...
    99+
    2024-04-02
  • BootStrap如何实现动态表单效果
    小编给大家分享一下BootStrap如何实现动态表单效果,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!html部分 &...
    99+
    2024-04-02
  • js实现导航栏上下动画效果
    本文实例为大家分享了js实现导航栏上下动画的具体代码,供大家参考,具体内容如下 obj.currentStyle[name] 与 getComputedStyle(obj,false...
    99+
    2024-04-02
  • div+css中怎么实现两列table效果
    这期内容当中小编将会给大家带来有关div+css中怎么实现两列table效果,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。css代码如下:.mycode{ margin-...
    99+
    2024-04-02
  • vue实现移动端div拖动效果
    本文实例为大家分享了vue实现移动端div拖动的具体代码,供大家参考,具体内容如下 手机上会偶尔用到拖动div的效果,虽然我自己还没遇到,先写一个以防万一,需要注明的是,具体实现代码...
    99+
    2024-04-02
  • Mybatis + js 实现下拉列表二级联动效果
     一、业务需求 实现省份与城市的二级联动 二、实现效果 三、代码实现 1. province_city.jsp 前端界面实现 <%@ page contentT...
    99+
    2024-04-02
  • Jquery+bootstrap实现表格行置顶置底上移下移操作详解
    最近接到产品的一个需求,它是要对数据排序,实际操作中我们要实现表格行置顶置底上移下移操作。项目框架是GUNS框架。 如下图: 我是怎么用Jquery+bootstrap进行实现这些...
    99+
    2024-04-02
  • CSS怎么实现动画移动效果
    这篇文章主要为大家展示了“CSS怎么实现动画移动效果”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“CSS怎么实现动画移动效果”这篇文章吧。思路首先我们新建一个正方形,用<svg>&l...
    99+
    2023-06-27
  • jquery怎么实现文字上下滚动效果
    你可以使用jQuery的animate()方法来实现文字的上下滚动效果。以下是一个示例代码:HTML部分:```htmlLorem ...
    99+
    2023-08-09
    jquery
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作