CNDS_cat 2022-08-09 15:01 采纳率: 14.3%
浏览 44
已结题

单击事件后跳出无数个重复的修改框

    layui.use(['table', 'form', 'upload', 'layer'], function () {
        var $ = layui.jquery, table = layui.table, layer = layui.layer, form = layui.form, upload = layui.upload, tableIns, currPage, excel = layui.excel;
        var arr = [];
        var Time = [];

        $(function(){
            GetDate();
        });
        function GetDate() {
            $.ajax({
                type: 'post',
                url: '/Djs/GetDJS',
                dataType: 'json',
                data: {},
                async: false,
                success: function (datajson) {
                    if (datajson) {
                        let html = datajson.data;
                        arr = [];
                        arr = html;
                        Time = [];
                        Time = new Array(html.length);
                        for (var i = 0; i < html.length; i++) {
                            Time[i] = html[i].SetSecond;
                        }
                        SetDate();
                        console.log(arr);
                    }
                }
            });
        }

        

        function SetDate() {
            for (let i = 0; i < arr.length; i++) {
                let index = 'title' + i;
                let idindex = arr[i].ID;
                $(document).on("click", '#' + index, function () {
                    layer.prompt({
                        formType: 0,
                        value: document.getElementById(index).innerText,
                        title: '修改',
                    }, function (value, index) {
                        $.ajax({
                            type: "post",
                            url: "/Djs/UpdateDjs",
                            dataType: "json",
                            async: false,
                            data: {
                                id: idindex,
                                devname: value,
                            },
                            success: function (result) {
                                r = result;
                                GetDate();
                                location.reload();
                            },
                            error: function () {
                            }
                        });
                        layer.close(index);
                        })
                });
                document.getElementById('title' + i).innerText = arr[i].DevName;
                document.getElementById('state' + i).innerText = arr[i].DevStates;
                document.getElementById('timer' + i).innerText = arr[i].NowSecond;
                if (arr[i].DevStates == '超时') {
                    document.getElementById('timer' + i).style.color = 'red';
                    document.getElementById('state' + i).style.color = 'red';
                }
                else if (arr[i].DevStates == '待机' || arr[i].DevStates == '运行中') {
                    document.getElementById('timer' + i).style.color = 'green';
                    document.getElementById('state' + i).style.color = 'green';
                }
            }
            //for (let i = 0; i < 24; i++) {
            //    (function (i) {
            //        var obj = 'timer' + i;
            //        countDown(Time[i], function (msg) {
            //            document.getElementById(obj).innerHTML = msg;
            //        })
            //    })(i)
            //}
        };

        var timeid = setTimeout(GetTime, 500);
        function GetTime() {
            GetDate();
            timeid = setTimeout(arguments.callee, 1000);
        }
        //function countDown(maxtime, fn) {
        //    var time = setInterval(function () {
        //        if (maxtime >= 0) {
        //            var minutes = Math.floor((maxtime % 3600) / 60),
        //                seconds = Math.floor(maxtime % 60),
        //                msg = minutes + ":" + seconds;
        //            fn(msg);
        //            --maxtime;
        //        }
        //        else if (maxtime < 0) {
        //            var minutes = Math.floor((maxtime % 3600) / 60),
        //                seconds = Math.floor(maxtime % 60),
        //                msg = (1 + minutes) + "分" + seconds + "秒";
        //            fn(msg);
        //            --maxtime;
        //        }
        //    }, 1000);
        //};
    });

为什么单击事件后跳出无数个重复的修改框,麻烦教一下怎么解决,详细一点。

  • 写回答

2条回答 默认 最新

  • 崽崽的谷雨 2022-08-09 15:08
    关注

    你这个layer 在 for循环里啊 。那当然会重复了 。
    在for循环外面 就不会了

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 8月19日
  • 已采纳回答 8月11日
  • 创建了问题 8月9日

悬赏问题

  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 保护模式-系统加载-段寄存器