data() { return { selectedOption: '', options: [ { label: '页面1', value: 'page1', image: 'page1.jpg' }, { label: '页面2', value: 'page2', image: 'page2.jpg' }, ] } }, methods: { handleOptionClick(option) { if (option.value === 'page1') { // 跳转到页面1 } else if (option.value === 'page2') { // 跳转到页面2 } } }, mounted() { this.$nextTick(() => { const elSelect = this.$refs.elSelect.$el.querySelector('.el-select-dropdown__list') elSelect.addEventListener('click', (event) => { const option = event.target.closest('.el-select-dropdown__item') if (option) { const index = option.getAttribute('index') const selectedOption = this.options[index] this.handleOptionClick(selectedOption) } }) }) }这段代码有误请修正
时间: 2024-03-25 16:37:03 浏览: 61
MATLAB GUI教学视频6:下拉菜单Pop-Up Menu的基本用法.rar
这段代码是使用了 Element UI 的下拉选择框组件,但是在 mounted 钩子函数中,通过原生的方式给下拉列表项绑定了 click 事件,这样会导致 Element UI 的下拉选择框组件的一些功能失效,比如搜索过滤、键盘操作等。应该使用 Element UI 提供的 onSelect 事件来处理选择的选项,代码应该改为:
```
data() {
return {
selectedOption: '',
options: [
{ label: '页面1', value: 'page1', image: 'page1.jpg' },
{ label: '页面2', value: 'page2', image: 'page2.jpg' },
]
}
},
methods: {
handleOptionClick(option) {
if (option.value === 'page1') {
// 跳转到页面1
} else if (option.value === 'page2') {
// 跳转到页面2
}
},
handleSelect(option) {
this.handleOptionClick(option)
}
},
```
template 代码应该改为:
```
<el-select v-model="selectedOption" @on-select="handleSelect">
<el-option v-for="(option, index) in options" :key="index" :label="option.label" :value="option.value"></el-option>
</el-select>
```
这样就可以保持 Element UI 的下拉选择框组件的正常功能,并且在选择选项时调用相应的处理函数。
阅读全文