javascript笔记——label包含的自定义按钮选中

自定义按钮ui样式就是需要有label包含input以及带另外的标签作为新ui的载体,此时触发label的click的时候也会选中按钮,也就是说存在事件捕获,解决这个问题有如下方式

用到了 mousedown 和 setTimeout

//simba goods_cart2
        jQuery(function(){
         var orderFee = jQuery('#order_pay_fee span').text();
         var len = 0;
         jQuery('.s-list-coupon .s-checkbox').mousedown(function(){
             var checked = jQuery(this).find('input[type="checkbox"]').is(":checked")?false:true;
             if(checked){
                 jQuery(this).parents('dl[role="select-box"]').siblings().find('input[type="checkbox"]').prop('checked',false);              
             } 
         }).mouseup(function(){
             setTimeout(function(){
                 var moneyCt =jQuery('.s-list-coupon input[type="checkbox"]:checked').parents('[role="select-box"]').find('.s-list-coupon-money');
                 var arr = [];
                 if(jQuery(moneyCt).length>0){
                     jQuery.each(moneyCt,function(i,item){
                         var money = parseInt(jQuery(item).text());
                         arr.push(money);
                     })
                     
                 }
                 if(arr.length>0){
                     var totalCouponMoney = null;
                     jQuery.each(arr,function(j,info){
                         totalCouponMoney+=info;
                     });
                     var endFee = (orderFee-totalCouponMoney);
                     jQuery('#order_pay_fee span').text(endFee);
                 }else{
                     jQuery('#order_pay_fee span').text(orderFee)
                 }                 
             },10)
         });                  
     })