微信小程序中的checkbox点击范围
可以通过在wxml中对复选框的圆圈和标签分别绑定事件来实现只有圆圈被点击时才选中或取消:
<checkbox-group>
<label class="checkbox-wrap">
<checkbox class="checkbox-circle" value="{{value}}" bindchange="handleCheckboxChange"/>
<text class="checkbox-label">{{label}}</text>
</label>
</checkbox-group>
其中,checkbox-circle
类指定了圆圈的样式,checkbox-label
类指定了标签的样式。在JS中,可以获取到点击事件发生的位置,若点击位置是圆圈,则执行选中或取消操作,否则忽略。
Page({
handleCheckboxChange: function (e) {
// 判断点击的元素是否是圆圈
let target = e.currentTarget;
let isCircle = target.dataset.type === 'circle';
// 如果是圆圈,则选中或取消选中
let value = e.detail.value;
if (isCircle) {
this.setData({
value: value
});
}
}
})
在 checkbox-circle
元素上添加 data-type="circle"
,可以使点击事件传递到 handleCheckboxChange
函数时,得知点击的是圆圈还是标签。
checkbox外层加一个view,设置宽度试试