【问题标题】:javascript toggle button with css带有css的javascript切换按钮
【发布时间】:2013-04-11 12:57:31
【问题描述】:

我有这个切换按钮,当我点击它时,按钮显示它处于活动状态,并且 css 发生变化,因此它更暗。但是当我点击另一个按钮时,切换不会停用(开/关)我想改变它,以便在我点击它时它会打开,当我点击另一个按钮时它会关闭。

按钮

<div class="btn-group float_right">
    <a id="gridBtn" onclick="$.views.stuff.ToggleView('gridView')" title="View as grid" class="btn" href="#"><i class="icon-th-large"></i></a>
    <a id="listBtn" onclick="$.views.stuff.ToggleView('listView')" title="View as list" class="btn" href="#"><i class="icon-th-list"></i></a>
</div>

javascript

$(document).ready(function () {
        $('a#gridBtn').click(function () {
            $(this).toggleClass("down");
        });
        $('a#listBtn').click(function () {
            $(this).toggleClass("down");
        });
    });

【问题讨论】:

  • 你能在 Jsfiddler 中显示一些问题
  • 一个建议是从您的 html 中删除 onlick 并将它们放入 $("...).click 部分。

标签: javascript jquery


【解决方案1】:

试试这个 CSS 技巧:

<div class="btn-group float_right">
    <label>
        <input type="radio" name="viewbuttons" />
        <a id="gridBtn" .....>...</a>
    </label>
    <label>
        <input type="radio" name="viewbuttons" />
        <a id="listBtn" .....>...</a>
    </label>
</div>

然后添加这个 CSS:

.btn-group input {display:none}
.btn-group a { /* your "deselected" styles here */ }
.btn-group input+a { /* your "selected" styles here */ }

这是非常有效的,因为您不需要任何 jQuery 来使其工作;)

【讨论】:

  • 非常方便,我会试一试,看看它是如何工作的。谢谢你的诡计。
  • 如果您不关心 HTML 的语义。
【解决方案2】:

您可以使用以下方法为您的#gridBtn 提供down 类:

$('#gridBtn').addClass('down');

另外,不需要两个单独的点击处理程序:

  $('a#gridBtn, a#listBtn').click(function() {
    $(this).toggleClass('down').siblings().removeClass('down');
  });

Demo

【讨论】:

  • 完美!我所需要的。谢谢!
  • 有没有办法从带有.addClass('down') 的按钮中删除悬停功能?
  • 最好还是用CSS,this question here应该能帮上忙
【解决方案3】:

需要同时设置其他按钮的状态吗?

$(document).ready(function () {
    $('a#gridBtn').click(function () {
        $(this).toggleClass("down");
        $('a#listBtn').attr('class', 'up');
    });
    $('a#listBtn').click(function () {
        $(this).toggleClass("down");
        $('a#gridBtn').attr('class', 'up');
    });
});

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2021-10-22
  • 2011-07-20
  • 1970-01-01
  • 2014-07-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-03-27
相关资源
最近更新 更多