基于bootstrap和jQuery的checkbox的应用

checkbox的单选多选组件

在网上找了插件自己改了一下,比原生的好看些,也可以自己修改

  1. HTML
    1 单选
<lable>
 <i class="input_style checkbox_bg">
   <input type="checkbox" name="addcart" value="1">
 </i>
</lable>

          2 多选

<lable>
  <i class="input_style checkbox_bg" style="margin-left: 30px;">
    <input type="checkbox" id="checkall" name="checkall">
  </i> 全选
</lable> 
  1. CSS
.input_style{
	background: url(../../images/green.png) no-repeat;
	width: 20px;
	height: 20px;
	display: inline-block;
}
 .radio_bg_check{
	background-position: -166px 0 ;
}
.checkbox_bg_check{
	background-position: -48px 0;
}

  1. JS(基于jQuery的)
(function($) {
  $.extend({ //进行方法的扩展
    inputStyle: function() {
      function check(el, cl) { //el 为传入的对象,cl为进行变化的claa样式,可以自定义,也可以直接用我的
        $(el).each(function() {
          $(this).parent('i').removeClass(cl);
          var checked = $(this).prop('checked');
          if (checked) {
            $(this).parent('i').addClass(cl);
          }

        })
      }

      function checkall(el, cl) { //对于全选的操作
        $(el).each(function() {
          $(this).prop("checked", true); //将checked属性改为true
          $(this).parent('i').addClass(cl); //将选中样式加上
        })
      }

      function checkadeletall(el, cl) { //对于全不选的操作
        $(el).each(function() {
          $(this).prop("checked", false);
          $(this).parent('i').removeClass(cl);

        })
      }
      // radio的利用, 此篇主要事针对于checkbox的应用, 若想用radio的可以自行修改
      // $('input[type="radio"]').on('click', function() {
      //   check('input[type="radio"]', 'radio_bg_check');
      // })
      $('input[name="addcart"]').on('click', function() { //当点击单选框
        check('input[name="addcart"]', 'checkbox_bg_check');//传入对象为input[name="addcart"],样式为checkbox_bg_check
        console.log("进入点击")
        if ($(this).is(':checked')) { //应甲方要求,当本来点击全选按钮,全部选中时,再点击单选框使其不为全选状态时,全选按钮自动的变为不选样式
          console.log("checkall若选中,则还是选中,若没有,无变化")
          return;
        } else {
          console.log("checkall不选中!");
          $('input[name="checkall"]').attr("checked", false); //将属性改为checked ,false
          $('input[name="checkall"]').parent('i').removeClass('checkbox_bg_check'); //将样式去除
        }

      })
      $('input[name="checkall"]').on('click', function() {
        check('input[name="checkall"]', 'checkbox_bg_check'); //先让他自身选中
        if ($(this).is(':checked')) {
          $('input[name="addcart"]').each(function() {
            checkall('input[name="addcart"]', 'checkbox_bg_check'); //当全选时,触发全选函数
          });
        } else {
          $('input[name="addcart"]').each(function() {
            checkadeletall('input[name="addcart"]', 'checkbox_bg_check'); //当不为全选时,触发不全选按钮
          });
        }
      })
    }
  })
})(jQuery)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值