iPhone风格的单选框和复选框jQuery代码

From DevGrow, a blog about designing, developing and growing your website.

The Example:

enable disable

Checkbox

The Prerequisites

You need just two things for this to work correctly: JQuery 1.3.2+ and the images/switch.gif image file used for the backgrounds.

Step 1 The HTML


  

Step 2 The Javascript


  $(document).ready( function(){ 
    $(".cb-enable").click(function(){
      var parent = $(this).parents('.switch');
      $('.cb-disable',parent).removeClass('selected');
      $(this).addClass('selected');
      $('.checkbox',parent).attr('checked', true);
    });
    $(".cb-disable").click(function(){
      var parent = $(this).parents('.switch');
      $('.cb-enable',parent).removeClass('selected');
      $(this).addClass('selected');
      $('.checkbox',parent).attr('checked', false);
    });
  });
  

Step 3 The CSS


  .cb-enable, .cb-disable, .cb-enable span, .cb-disable span { background: url(switch.gif) repeat-x; display: block; float: left; }
  .cb-enable span, .cb-disable span { line-height: 30px; display: block; background-repeat: no-repeat; font-weight: bold; }
  .cb-enable span { background-position: left -90px; padding: 0 10px; }
  .cb-disable span { background-position: right -180px;padding: 0 10px; }
  .cb-disable.selected { background-position: 0 -30px; }
  .cb-disable.selected span { background-position: right -210px; color: #fff; }
  .cb-enable.selected { background-position: 0 -60px; }
  .cb-enable.selected span { background-position: left -150px; color: #fff; }
  .switch label { cursor: pointer; }
  .switch input { display: none; }
  

Compatability

While this should work in all major browsers, it has only been tested on: Firefox 3.5+, IE7+, Chrome 4.1+, Opera 9.6+, Safari 4+