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