0

我有这个切换按钮,当我单击它时,按钮显示它处于活动状态并且 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");
        });
    });
4

3 回答 3

3

试试这个 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 来使其工作;)

于 2013-04-11T13:00:32.140 回答
2

您可以使用以下方法给您#gridBtndown课程:

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

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

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

演示

于 2013-04-11T13:21:39.447 回答
1

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

$(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');
    });
});
于 2013-04-11T12:59:33.120 回答