【问题标题】:How to unhighlight button after other button is clicked (Web CSS Bootstrap)单击其他按钮后如何取消突出显示按钮(Web CSS Bootstrap)
【发布时间】:2015-06-28 03:43:21
【问题描述】:

我有一个带有两个按钮的注册页面。单击一个按钮时,将显示相应的容器。单击一个按钮时,即使我选择了另一个按钮,bg 颜色也会改变并粘住。然后,如果我再次选择该按钮,它会恢复为未选择/非活动颜色。

我希望单击的按钮保持其活动颜色,但前提是未单击另一个按钮。如果单击另一个按钮,我希望第一个按钮返回其原始背景颜色。

这里是js:

<script type = "text/javascript">
  function displayForm(c) {
    if (c.value == "1") {

      document.getElementById("container1").style.display = 'inline';
      document.getElementById("container2").style.display = 'none';
    } else if (c.value == "2") {
      document.getElementById("container1").style.display = 'none';

      document.getElementById("container2").style.display = 'inline';
    } else {}
  } 
</script>

这里是按钮(抱歉格式问题):

                        <!--SELECTION BUTTONS-->
                            <form>
                                <div class="control-group">

                                    <label class="control-label">Are you a:</label>

                                    <div class="controls">

                                            <p><div id="account-type" name="account-type" class="btn-group selection-buttons" data-toggle="buttons-radio">

                                            <button value="1" type="button" name="formselector" onClick="displayForm(this)" id="button1" class="btn btn-info">
                                            Buttons1</button>

                                            <button value="2" type="button" name="formselector" onClick="displayForm(this)" id="button2" class="btn btn-info">Button2</button>

                                          </div></p>

                                    </div>

                                </div>
                            </form>

这是 CSS(使用 Bootstrap):

/* SWITCH BUTTONS */
.selection-buttons button{
    width: 140px;
    height: 60px;
    color: #FFF;
    background-color: #FFB10D;
    border-color: #fff; /* e59f0b */
}

.selection-buttons .btn-info:hover, .btn-info:focus, .btn-info:active, .btn-info.active, .open .dropdown-toggle.btn-info {
    color: #FFF;
    background-color: #00CC66;
    border-color: #fff; /* 00b75b */
}

谢谢!!

【问题讨论】:

  • 它是否添加了一个类似于 active 的类?
  • @epascarello 是的。

标签: javascript css html twitter-bootstrap


【解决方案1】:

一个非常简单的潜在解决方案。在您的 JS 中只需添加以下几行:

 function displayForm(c) {
          for (var i = 1; i <= number_of_buttons; i++) {
            if (document.getElementById("button"+i) {
             document.getElementById("button"+i).className = "active";
          } else {
              document.getElementById("button"+i).className = "inactive";
       }
     }
   }

然后只需使用您的 CSS 文件为 activeinactive 类设置所需的格式。如果您没有 1000 多个按钮,这将足以满足您的需求。

【讨论】:

  • 谢谢。我是否必须将非活动/活动类名称添加到按钮?它似乎不起作用。我将 JS 添加到上面编写的 JS 中(在同一个脚本中),并将上面的 CSS 类名更改为 .active 和 .inactive: .inactive { width: 140px;高度:60px;颜色:#FFF;背景颜色:#FFB10D;边框颜色:#fff; /* e59f0b / } .active .active:hover, .active:focus, .active:active, .active.active, .open .dropdown-toggle.btn-info { color: #FFF;背景颜色:#00CC66;边框颜色:#fff; / 00b75b */ }
  • inactive 类添加到按钮,除非您希望一个按钮在渲染时处于活动状态,在这种情况下,将active 添加到该按钮。我忘了包括您需要在每次迭代时检查按钮以查看它是否具有 active 类并将其删除,或者它是否具有 inactive 并删除您是否使该按钮处于非活动状态或活动状态, 分别。您可以在此处找到相关示例:w3schools.com/jquery/html_removeclass.asp 请记住,您需要 jquery 才能完成这项工作。
猜你喜欢
  • 2016-07-03
  • 2014-10-08
  • 1970-01-01
  • 2021-05-06
  • 1970-01-01
  • 2011-07-04
  • 2013-07-01
  • 2015-09-27
  • 1970-01-01
相关资源
最近更新 更多