记一次el-checkbox包裹一层div,点击div勾选复选框,点击复选框却没反应的bug

发布时间 2023-12-27 11:54:05作者: 鼓舞飞扬
<div
  class="account-item"
  v-for="item in accountList"
  :key="item.id"
  :class="[
    { 'is-select-mode': isSelectMode },
    { 'is-select': item.isSelect }
  ]"
  @click="selectItemClick(item)"
>
  <el-checkbox
    v-if="isSelectMode"
    v-model="item.isSelect"
    label=""
    size="large"
    @click.stop="stopEvent"
  />
  <svg-icon class="svg-icon" icon="icon-custom"></svg-icon>
  <div class="account-content">
    <div class="name">{{ item.name }}</div>
    <div class="phone">{{ item.phone }}</div>
    <div class="email">{{ item.email }}</div>
    <div class="address">{{ item.address }}</div>
  </div>
</div>

点击div时,点击div取消,勾选复选框是正常的,但是点击复选框却失效,这是由于冒泡,相当于改了两次checked的值,造成值没变,只需要给checkbox的点击事件取消冒泡就可以了。