js 控制 button 切换

最近做公司的一个抽奖系统,频繁的用到了两个小功能——

  1. 单击实现切换按钮
  2. 一列按钮,一次只能选定一个

个人觉得还是很实用的,在这里把这两个功能的实现代码贴出来。

事先声明,css用的是adminlte和bootstrap原生的,js里面还用到了layer弹窗,layer是非常方便好用的弹窗插件,会在以后的博客中有引申说明。

1 单击切换按钮

抽奖以前,后台的抽奖按钮应该是这个样子的

这里写图片描述

开始之后,就要变成

这里写图片描述

为什么要这么做呢?反正这个控制按钮不是观众能看到的,只有后台控制人员才能看到。

这样做主要是为了防止操作失误。试想,如果控制台的工作人员点了“开始抽奖”,想要结束的时候一不小心点错了,又点到“开始抽奖”了,那就不知道观众在前台会看到什么结果了。。。。因此,让“开始抽奖”与“结束抽奖”互斥存在,是有效防止操作失误的方法。

html代码

button(class="btn btn-info" id="Start" onclick="startLottery()",style="display:block;width:100px;margin-left:2%;") 开始抽奖
button(class="btn btn-danger" id="End" onclick="endLottery()",style="display:none;width:100px;margin-left:2%;") 结束抽奖

js代码

function startLottery() {
    $("#Start").css("display","none");
    $("#End").css("display","block");
}
function endGift() {
    $("#Start").css("display","block");
    $("#End").css("display","none");
}

2 一列按钮,一次只能选定一个

要抽奖的时候,后台工作人员要选中某个奖品,然后再点击“开始抽奖”,在奖品列表的每一行最前面加一个“选中”按钮来实现该功能。那么,如何选中其中一个的时候,其它都是灰色呢?

这里写图片描述

首先说一下奖品列表是怎么来的吧。从数据库中读出所有奖品展示在页面的时候,是在js里面将html拼成一个列表

function refreshPage(){
    $.ajax({
        type: "post",
        url : getContextPath() + "/award/getAllAwards",
        dataType:'json',
        data: {
        },
        success: function(data){
            var awards = data.data;
            var awardHtml = "";
            var iLen = awards.length;
            for(var i = iLen - 1 ; i >=0  ; i--){
                awardHtml+="<tr><td><span id='span"+i+"' style='cursor:pointer;' onclick='selectAward("+i+","+iLen+")' class='label label-default'>"+"选中"+"</span></td><td>"+awards[i].awName+"</td><td>"+awards[i].awDescription+"</td><td>"+
                    awards[i].awUserCount+"</td><td>"+awards[i].awKind+"</td><td><span style='cursor:pointer;' class='label label-info' onclick='confirmUpdateAward("+i+")'>"+"编辑"+"</span></td><td>" +
                    "<span class='label label-danger' style='cursor:pointer;' onclick='comfirmDeleteAward("+awards[i].id+")'>"+"删除"+"</span></td></tr>";
            }
            $("#awardTable").html(awardHtml);
        }
    });
}

前端页面上。只需要有一个

tbody#awardTable

就可以把数据库中取出来的奖品列表循环放到这个 tbody 里面。

注意那个js里面的html拼接,给每一个选中按钮都加了一个id,这个id就是我们控制一次只能有一个奖品被选中的关键。

function selectAward(i,iLen){
    $.ajax({
        type: "post",
        url : getContextPath() + "/config/setCurrentAward",
        dataType:'json',
        data: {
            "awardId":awards[i].id
        },
        success: function(data){
            var selectSuccess = data.data;
            if(selectSuccess){
                var spanId = "span"+i;
                $("#"+spanId).attr("class","label label-success");
                for(var m = iLen - 1 ; m >=0  ; m--){
                    if(m!=i){
                        var otherSpanId = "span"+m;
                        $("#"+otherSpanId).attr("class","label label-default");
                    }
                }
            }else{
                layer.msg('选中失败', {
                    time: 500, //20s后自动关闭
                });
            }
        }
    });
}

最关键的两句代码就是

$("#"+spanId).attr("class","label label-success");
$("#"+otherSpanId).attr("class","label label-default");

说明
如有转载,请务必在开头标明出处:
http://blog.csdn.net/antony9118/article/details/53575214

  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在uniapp中,你可以使用条件渲染来实现按钮点击切换颜色的功能。具体实现方法如下: 1. 首先,在`<button>`标签中添加一个动态的`class`属性,用来控制按钮的颜色。例如: ```html <template> <button class="my-btn" :class="{ active: isActive }" @click="toggleButton"> {{ buttonText }} </button> </template> ``` 以上代码中,`my-btn`是自定义的样式类,`active`是用来控制按钮颜色的类名,`isActive`是一个数据属性,用来控制`active`类名的出现与否。 2. 接着,在`<script>`标签中,定义`toggleButton`方法,用来切换`isActive`属性的值,从而实现按钮颜色的切换。例如: ```javascript <script> export default { data() { return { buttonText: "点击我", isActive: false, }; }, methods: { toggleButton() { this.isActive = !this.isActive; }, }, }; </script> ``` 以上代码中,当按钮被点击时,`toggleButton`方法会将`isActive`属性的值取反,从而实现按钮颜色的切换。 3. 最后,在`<style>`标签中,定义`.active`类的样式,用来控制按钮的颜色。例如: ```css <style> .my-btn { color: #fff; background-color: #333; border: none; padding: 10px 20px; border-radius: 5px; } .active { background-color: #f00; } </style> ``` 以上代码中,`.my-btn`是自定义的样式类,用来设置按钮的一般样式,`.active`是用来控制按钮颜色的类名,设置为红色背景色。 通过以上步骤,点击按钮时,按钮的颜色就可以切换了。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值