扫码关注官方订阅号
如图其中p的点击事件能够顺利执行,而动态组件中的点击事件则没有反应,即使所渲染的组件本身并没有绑定点击事件也是如此。给动态组件外层包裹一个p确实能够解决事件捕获的问题,但相应的会带来样式上的问题,望大神指点。
ringa_lee
使用-v-on-绑定自定义事件
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <!-- 引入样式 --> <link rel="stylesheet" href="https://unpkg.com/element-ui/lib/theme-default/index.css"> </head> <body> <p id="app"> <component :is="name" @click.native="click"></component> </p> <!-- 先引入 Vue --> <script src="https://unpkg.com/vue/dist/vue.js"></script> <!-- 引入组件库 --> <script src="https://unpkg.com/element-ui/lib/index.js"></script> <script> Vue.component('btn', { template: '<el-button>按钮</el-button>' }) new Vue({ el: '#app', data: function () { return { name: 'btn' } }, methods: { click() { console.log('click') } } }) </script> </body> </html>
//parent.vue
<ClassifyItem v-for="item in result" :industryTitle="item.industryInfo" :industryItems="item.industryInfos" @tapEvent="linkTap" /> methods: { linkTap(data){ //dosomething } }
child.vue
<a @click="toggleTap">子组件</a> clickEvent(item){ console.log(item); this.$emit('tapEvent',item); }
如果这个事件是多个组件共用的, 并且父组件不是必须的(或者说, 只是为了让一些事件在该作用于下才能被使用), 可以考虑把事件写成js模块, 然后在需要用到的组件中导入.
微信扫码关注PHP中文网服务号
QQ扫码加入技术交流群
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
PHP学习
技术支持
返回顶部
使用-v-on-绑定自定义事件
//parent.vue
child.vue
如果这个事件是多个组件共用的, 并且父组件不是必须的(或者说, 只是为了让一些事件在该作用于下才能被使用), 可以考虑把事件写成js模块, 然后在需要用到的组件中导入.