赞
踩
实现的代码如下所示:
<el-form label-position="top">
<el-form-item label="选项设置">
<div slot="label">
<span>选项设置</span>
<el-button icon="el-icon-plus" type="text" size="mini" @click="addOptions">新增选项</el-button>
</div>
<!--列表内容--->
</el-form-item>
</el-form>
function addOptions() {
console.log('addOptions')
}
布局实现是使用el-form-item
里的slot
为label
来设置头部,实现form-item
的上下布局自定义label
内容
点击【新增选项】按钮,下面会一直新增列表项
需要圈红的B区域触发新增选项的操作,圈红的A区域不需要有新增选项的操作。但是始终点击圈红的A区域还是会触发新增选项的操作
click
修饰符给el-button
的click
使用阻止冒泡等修饰符,问题仍然存在
<el-button icon="el-icon-plus" type="text" size="mini" @click.stop="addOptions">新增选项</el-button>
<!--或者--->
<el-button icon="el-icon-plus" type="text" size="mini" @click.prevent="addOptions">新增选项</el-button>
event
回调阻止click
响应回调事件中阻止冒泡等,问题仍然存在
function addOptions(e) {
e.preventDefault();
e.stopPropagation();
}
最终还是放弃了使用el-form-item
的写法,直接使用div
来布局。
如果有大佬们有高见,帮忙回复下,不胜感激!!!
有大佬解惑啦~~~
<template> <el-form label-position="top"> <el-form-item label="选项设置"> <div slot="label" @click="addOptions($event)"> <span>选项设置</span> <el-button id="addType" icon="el-icon-plus" type="text" size="mini">新增选项</el-button> </div> <!--列表内容---> </el-form-item> </el-form> </template> <script> export default { methods: { addOptions(e) { e.preventDefault() try { if (e.target?.id == 'addType' || e.target.innerText == '新增选项' || e.target.className == 'el-icon-plus') { console.log(e.target, '点击了新增按钮!', e) } else { // console.log(e.target, '点击了', e) } } catch (error) {} } } } </script>
其实,我总觉得这种情况是不是element-ui
的一个bug
,还是说他们就是特地这么处理的,感觉得研究下源码
本人每篇文章都是一字一句码出来,希望对大家有所帮助,多提提意见。顺手来个三连击,点赞
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。