如何使用jQuery为Javascript中的两个按钮之间的切换创建有效的代码?

我正在寻找一种方法来有效地使用javascript和jQuery在两个按钮之间切换.

范围

单击“是”或“否”时,相反的按钮将获得禁用的CSS类,而单击的按钮将获得活动的CSS类. var也将保存为true值,稍后将使用.

HTML

<div id="buttons">
  <button id="yes">Yes</button>
  <button id="no">No</button>
</div>

JS

function bindButtons(){
  var buttons = $('#buttons button');

  buttons.on('click', function(e){
    var $this = $(this);
    buttons.removeClass('selected');
    if($this.attr('id') == 'yes'){
      var el = $('#no'),
          val = true;
      $this.removeClass('disabled');
      $this.addClass('selected');
      el.addClass('disabled');
    }
    if($this.attr('id') == 'no'){
      var el = $('#yes'),
          val = false;
      $this.removeClass('disabled');
      $this.addClass('selected');
      el.addClass('disabled');
    }
    //do something with val
  })
}
bindButtons();

的jsfiddle

http://jsfiddle.net/RobertSheaO/Tjngw/2/

最佳答案
这应该可以替代你的bindButtons函数肉.

EDIT

Apparently, this should also work with more than one button. Late night coding as well. >_>

var buttons = $('#buttons button').on('click', function (e) {

    var $this = $(this).removeClass('disabled').addClass('selected'),
        el = buttons.not(this).addClass('disabled'),
        isYes = $this.is('#yes')
        ;

    // do something with isYes

});

jsFiddle

它对我来说是完全可读的,但它可能不适合你,所以如果你愿意,这可能会更好:

var buttons = $('#buttons button').on('click', function (e) {

    var $this = $(this),
        el = buttons.not(this),
        isYes = $this.is('#yes')
        ;

    $this.removeClass('disabled');
    $this.addClass('selected');
    el.addClass('disabled');

});

转载注明原文:如何使用jQuery为Javascript中的两个按钮之间的切换创建有效的代码? - 代码日志