【问题标题】:jQueryUI Buttonset CSS issuejQueryUI Buttonset CSS 问题
【发布时间】:2013-02-20 22:19:45
【问题描述】:

我有一组复选框,我使用 Buttonset 使它们看起来像按钮

<div id="ButtonList">

    <input type="checkbox" id='Check0' value="true" /><label for="Check0">0000</label>
    <input type="checkbox" id='check1' value='false' /><label for="check1">0100</label>
    <input type="checkbox" id='check2' value='true' /><label for="check2">0200</label>
    <input type="checkbox" id='check3' value='false' /><label for="check3">0300</label>

</div>

还有

$('#ButtonList').buttonset();

$('#ButtonList input[type=checkbox]').change(function () {
    $(this).css("color", "red");
});

我想要的是,当用户单击按钮以更改按钮下的复选框时,颜色将在这种情况下变为红色。

我已经尝试了几个小时,但没有运气,谷歌也没有多大帮助。

谢谢

【问题讨论】:

  • 您是要更改按钮的样式,还是更改按钮隐藏的复选框的样式?您当前的代码正在将红色的 text 颜色添加到隐藏的复选框元素中。
  • 更改按钮的样式。

标签: jquery jquery-ui jquery-ui-button


【解决方案1】:

您当前的代码将红色文本颜色添加到隐藏的复选框元素,而不是样式化的 jQuery UI 按钮集。

您可以仅使用 CSS 覆盖列表中活动按钮的 jQuery UI 的默认样式。

JS

$('#ButtonList').buttonset();

CSS

#ButtonList .ui-button.ui-state-active .ui-button-text {
    color: red;
    background-color: pink;
}

jsfiddle

更新:

根据您的 cmets,听起来您想使用 .each() 来迭代项目而不是使用 CSS。您可以通过选择正确的项目并调整 JS 中的样式来做到这一点。

$('#ButtonList input[type=checkbox]').change(function () {
    var jquiButtonLabel = $(this).next('.ui-button');
    var jquiButtonText = jquiButtonLabel.children('.ui-button-text');
    if (jquiButtonLabel.hasClass('ui-state-active')) {
        jquiButtonText.css({
            'color': 'red',
            'background-color': 'pink'
        });
    } else {
        jquiButtonText.css({
            'color': '',
            'background-color': ''
        });
    }
});

jsfiddle

【讨论】:

  • 谢谢,现在说得通了,是的,我知道我可以用 CSS 添加它,但我想为添加到组中的每个按钮控制按钮的其他元素,因此 CSS 不是一个选项。
  • 感兴趣的是有没有一种方法可以控制没有 CSS 样式的 CSS 或按钮组所​​以我正在尝试但没有像你的 jsfiddle 这样的 CSS?
  • @CliffordAgius 我添加了一个基于您的 cmets 的替代解决方案。
  • 更新正是我所需要的,现在我可以根据需要控制按钮。谢谢
猜你喜欢
  • 1970-01-01
  • 2020-03-04
  • 1970-01-01
  • 1970-01-01
  • 2019-01-05
  • 2011-05-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多