el-option 点击事件后阻止el-select关闭
时间: 2023-10-08 15:10:34 浏览: 408
Element-ui中元素滚动时el-option超出元素区域的问题
5星 · 资源好评率100%
要阻止el-select在el-option点击事件后关闭,可以使用以下方法:
首先,设置 disable-remote="false" 来启用el-option的鼠标事件。
然后,利用 @mouseenter.native="optionMouseOver(index)" 来存储选中的行。
在el-select的change事件后,由于mouseleave事件的原因,this.optionHoverIndex会发生变化,所以可以使用visible-change事件来初始化 this.optionHoverIndex。
同时,需要注意使用.stop和.native的搭配使用。
在代码中,可以这样实现:
```html
<el-select v-model="importForm.templateCode" placeholder="请选择" class="w-500px template-select" @visible-change="visibleChange">
<el-option v-for="(item, index) in templateList" :key="index" :label="item.templateName" :value="item.templateCode" :disable-remote="false" @mouseenter.native="optionMouseOver(index)">
<span style="float: left">{{ item.templateName }}</span>
<span style="float: right" class="t-blue" :style="index === optionHoverIndex ? 'display:block' : 'display:none'">
<span v-if="!item.isDefault" @click.stop="setTempDefault(item)">设为默认</span>
<span v-else>已默认</span>
</span>
</el-option>
</el-select>
```
这样,当点击el-option中的按钮时,点击事件将被阻止,el-select不会关闭。同时,通过visible-change事件来初始化this.optionHoverIndex,确保选中的行可以正确显示后置按钮。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
阅读全文