自定义按钮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) }); })