<view class="answer">
<u-checkbox-group placement="column" @change="groupMultipleChange">
<view v-for="(answerItem, i) in item.answerBankList" :key="i" @click.capture="checkSel(i)">
<view @click.self.capture="onCardClick">
<u-checkbox ref="checkbox" @change="checkboxChange" :customStyle="{
marginBottom: '12px', padding: '28rpx 42rpx',
background: '#FFFFFF',
borderRadius: '16rpx',
marginBottom: '18rpx',
color: '#333',
fontSize: '32rpx',
}" :label="formatAnswerName(i, answerItem)" :name="answerItem.id">
</u-checkbox>
</view>
</view>
</u-checkbox-group>
</view>
关键点:
checkSel (i) {
this.checkIndex = i
},
onCardClick (event) {
const { checkbox } = this.$refs;
let index = this.checkIndex;
if (!checkbox[index]) return;
checkbox[index].iconClickHandler(event); // 把事件交给checkbox处理
checkbox[index].preventEvent(); // 必须,阻止checkbox的默认行为
},
checkboxChange (e) {
console.log(`复选框状态`, e);
},
先获取最外层的index,然后再找到ref对应的这个checkbox。将事件传给checkBox
增大checkbox的可点击面积https://static.kancloud.cn/uview/uview-ui_v2/2617399