iView组件中,折叠面板Collapse点击面板标题部分,会出现面板收起或展开的效果。那么在面板标题后面再添加下拉框之类的组件时,会出现跟面板点击一样的效果,这时候就需要阻止冒泡的用法了。具体代码:
<!-- 折叠面板组件on-change事件即可获得当前展开面板的值,value即为默认面板的值,可绑定变量值,accordion选项即一次只能展开一个面板 --> <Collapse @on-change="panelChange" :value="list[0].code" accordion> <!-- 折叠面板组件需要给每个Panel一个特定的name值,防止展开收起时操作有误 --> <Panel v-for="(item, index) in list" :key="item.code" :name="item.code"> {{ item.name }} <!-- 以下div的click事件即为阻止冒泡,div的内容即为在标题上添加的组件 --> <div @click.stop.prevent="() => {}"> </div> <div p="slot"> <!-- 面板内部内容 --> </div> </Panel> </Collapse>
<script> export default { data() { return { list: [{ code: '1', name: '折叠面板1' }, { code: '2', name: '折叠面板2' }, { code: '3', name: '折叠面板3' }]; } }, methods: { panelChange(keyList) { //获取当前展开面板的值 console.log(keyList); }
} } </script>