<el-checkbox-group v-model="queueName50" style="margin: 10px;"> <el-checkbox v-for="item in queueNameList[server50]" :key="item.nameWithIp" :label="item.name" :disabled="!enableZeroCountQueue && item.enqueueCountDiff === 0" style="color: white;width: 290px;"> <a :href="item.link" @click.prevent @contextmenu="openLink(item)">{{ item.label }}</a> </el-checkbox> </el-checkbox-group>在这个组件里,我用@click.prevent 阻止了点击事件,现在我只想阻止点击后触发的openLink,而不想阻止这个组件本身的选中功能,应该怎么改代码
时间: 2024-02-14 22:18:31 浏览: 127
Vue动态生成el-checkbox点击无法赋值的解决方法
5星 · 资源好评率100%
您可以将@click.prevent改为@click.stop,这样可以阻止事件继续传播,但不会阻止组件本身的选中功能。然后,您可以在openLink方法中添加一个条件,如果点击的是复选框本身,则不执行该方法。例如:
```
<el-checkbox-group v-model="queueName50" style="margin: 10px;">
<el-checkbox v-for="item in queueNameList[server50]" :key="item.nameWithIp" :label="item.name"
:disabled="!enableZeroCountQueue && item.enqueueCountDiff === 0"
style="color: white;width: 290px;">
<a :href="item.link"
@click.stop
@contextmenu="openLink(item, $event)">{{ item.label }}</a>
</el-checkbox>
</el-checkbox-group>
...
methods: {
openLink(item, event) {
if (event.target.tagName.toLowerCase() !== 'input') { // 判断点击的是否是复选框本身
// 执行打开链接的代码
}
}
}
```
这样就能够只阻止打开链接的代码,而不影响复选框的选中功能了。
阅读全文