jquery切换按钮添加删除类

时间:2012-08-29 05:10:20

标签: jquery button checkbox

我试图遵循jquery文档的规范,但我不能以编程方式初始化按钮的标签,并为其添加/删除类。

请查看此jsbin中的几行。

http://jsbin.com/akinod/2/edit

HTML

<label for="xAxisToggleBtn"></label>
<input type="checkbox" id="xAxisToggleBtn"/>

CSS

.on {
    background-color: green;
    color: white;   
}

.off {
    background-color:brown;
    color: white;   
}

的Javascript

    $(window).load(function() {

      $("#xAxisToggleBtn").button();


      $('#xAxisToggleBtn').die('click').live('click', function(){

                if($(this).is(':checked')){
                    $(this).button('option', 'label', 'Turn Off');

                  //why I cannot add/remove classes to change the theme?
                    $(this).addClass('on');
                    $(this).removeClass('off');

                } else {
                    $(this).button('option', 'label', 'Turn On');

                   //why I cannot initialize add/remove classes to change the theme?
                    $(this).addClass('off');
                    $(this).removeClass('on');

                }
        });

});


//why I cannot initialize the label here?
$("#xAxisToggleBtn").button('option', 'label', 'Turn Off');
$("#xAxisToggleBtn").attr('checked', true);
$("#xAxisToggleBtn").addClass('on');

2 个答案:

答案 0 :(得分:1)

我再次在此处进行了更改:http://jsfiddle.net/5g2Y6/2/

注意:这是一个黑客。按钮插件没有任何css选项。请查看更多关于按钮插件的文档。

PS:不要使用“live”方法,不推荐使用。使用jquery“on”方法。

答案 1 :(得分:1)

您必须将该类添加到按钮小部件,您的样式将需要覆盖jQuery-UI自己,并确保在您尝试操作它们之前加载元素。

$(function() {
    $("#xAxisToggleBtn").attr('checked', true)
      .addClass('on').button({'label': 'Turn Off'})
      .button('widget')
      .addClass('off');        

      $('#xAxisToggleBtn').on('click', function(){                
                if($(this).is(':checked')){
                    $(this).button('option', 'label', 'Turn Off');
                } else {
                    $(this).button('option', 'label', 'Turn On');
                }
                $(this).button('widget').toggleClass('on off');
        });

});
.on {
    background: green!important;
    color: white!important;    
}

.off {
    background:brown !important;
    color: white !important;    
}

DEMO