解决同⼀个菜单连续停⽤和启⽤的bug

在上述代码实现中,存在的问题:
当⼀个 已停⽤ 状态的菜单,点击 启⽤ 按钮启⽤后,再次点击 停⽤ 按钮⽆法停⽤
当⼀个 已启⽤ 状态的菜单,点击 停⽤ 按钮停⽤后,再次点击 启⽤ 按钮⽆法启⽤
问题分析:
menuCode 是字符串类型,当我们使⽤ JS 代码拼接 停⽤ ”/“ 启⽤ 按钮时,要指定按钮点击
事件触发 JS ⽅法,通过要将 menuCode 传递到⽅法中, menuCode 没有添加 '' , 导致
menuCode 不能传递到 JS 函数中
解决⽅案:
启⽤菜单的 JS ⽅法中 member_start()

停⽤菜单的 JS ⽅法中 member_stop()

 /*菜单-停用*/
    function member_stop(obj,id){
        //1.提示确认是否要停用
        layer.confirm('确认要停用吗?',function(index){
            //发送ajax请求,MenuStateChangeServlet,将当前菜单停用掉。
            $.post("MenuStateChangeServlet",{menuCode:id,oper:"stop"},function (res) {
                if (res.code == 1000){
                    //2.将按钮状态修改为启用状态
                    $(obj).parents("tr").find(".td-manage").prepend('<a style="text-decoration:none" class="btn btn-xs " onClick="member_start(this,\''+id+'\')" href="javascript:;" title="启用"><i class="fa fa-close bigger-120"></i></a>');
                    //3.将菜单显示的状态修改为已停用
                    $(obj).parents("tr").find(".td-status").html('<span class="label label-defaunt radius">已停用</span>');
                    //移除当前按钮
                    $(obj).remove();
                    //弹窗显示操作成功!
                    layer.msg('已停用!',{icon: 5,time:1000});
                } else if (res.code == 1001) {
                    layer.msg('停用操作失败!',{icon:5,time:1000})
                }
            },"json")
        });
    }
    /*菜单-启用*/
    function member_start(obj,id){
        layer.confirm('确认要启用吗?',function(index){
            $.post("MenuStateChangeServlet",{menuCode:id,oper:"start"},function (res) {
                if (res.code == 1000) {
                    $(obj).parents("tr").find(".td-manage").prepend('<a style="text-decoration:none" class="btn btn-xs btn-success" onClick="member_stop(this,\''+id+'\')" href="javascript:;" title="停用"><i class="fa fa-check  bigger-120"></i></a>');
                    $(obj).parents("tr").find(".td-status").html('<span class="label label-success radius">已启用</span>');
                    $(obj).remove();
                    layer.msg('已启用!',{icon: 6,time:1000});
                }else if (res.code ==1001) {
                    layer.msg('启用失败!',{icon: 6,time:1000});
                }
            },"json");
        });
    }

更改后效果

因为传递过来的menuCode是字符串类型的,所以需要用转义字符\和单引号'把传过来的数值引起来,中间再加一层单引号是因为id是变量。

\''+id+'\'

 这样就可以连续自由的进行启用和停用了

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

做一道光

你的鼓励将是我创作的最大动力

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

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

打赏作者

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

抵扣说明:

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

余额充值