0

我试图遵循 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');
4

2 回答 2

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;    
}

演示

于 2012-08-29T05:46:46.387 回答
1

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

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

PS:不要使用已弃用的“实时”方法。使用 jquery "on" 方法。

于 2012-08-29T05:35:30.407 回答