el-select中每个option加删除按钮并且可点击

先看效果:

 点击删除后:


                <el-select
                  v-model="trainTaskTags"
                  multiple
                  filterable
                  allow-create
                  default-first-option
                  placeholder="请选择或创建标签"
                  style="width: 80%"
                  @change="handleTagChange"
                >
                  <el-option
                    v-for="tag in userTags"
                    :key="tag.id"
                    :label="tag.name"
                    :value="tag.id"
                  >
                    <span style="float: left">{{ tag.name }}</span>
                    <el-tag
                      v-if="true"
                      size="mini"
                      effect="dark"
                      type="danger"
                      style="float: right; margin-top: 8px; margin-left: 3px"
                      @click.stop="handleDeleteTag(tag, $event)"
                    >
                      删除
                    </el-tag>
                    <el-tag
                      v-if="true"
                      size="mini"
                      effect="dark"
                      type="warning"
                      style="float: right; margin-top: 8px"
                      @click.stop="handleEditTag(tag, $event)"
                    >
                      修改
                    </el-tag>
                  </el-option>
                </el-select>
    handleDeleteTag (tag) {
      this.$confirm('其他训练任务中若有此标签也将被删除,确认删除此标签吗?', '提示', {
        confirmButtonText: '确定',
        cancelButtonText: '取消',
        type: 'warning'
      }).then(() => {
        this.deleteTrainTaskTag(tag.id).then(() => {
          this.$message.success('删除成功')
          this.getTags()
        }).catch(() => {
          this.$message.error('删除失败')
        })
      })
    },

其中关键的是@click.stop,此方法可阻断点击事件的继续传播。否则点击删除按钮后会继续触发el-select的选中事件。

扩展

@click.prevent:阻止事件的默认行为

 比如在代码里写入一个a标签,点击后会跳转到目标链接网页中:

<div>
	<a href="https://www.baidu.com">百度</a>
</div>

 但是如果我们不想让它跳转并且还想使用a标签的话,此时就需要使用@click.prevent方法,此时点击后就不会跳转了。

<div>
	<a href="https://www.baidu.com" @click.prevent='notLink'>百度</a>
</div>

  • 9
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值