我需要捕获Vue.js应用程序中用户触发的所有点击事件。我的第一步是向#appdiv添加一个onclick侦听器:
<div id="app" @click="onClickApp"></div>
// ...
<script>
export default {
methods: {
onClickApp() {
// increment counter in vuex store
}
}
</script>
这将捕获直接在App组件内部发生的所有点击事件。问题是我使用的是Bootstrap Modal(通过BootstrapVue提供),我还需要捕获其中的点击。即使我在<b-modal></b-modal>组件上设置了另一个@click侦听器(vue-cli的语法),此操作目前也无法正常进行。
这也是我在(main.js)中尝试的方法:
new Vue({
router,
store,
render: h => h(App),
mounted: function() {
this.$el.addEventListener('click', this.onClickVue)
},
beforeDestroy: function () {
this.$el.removeEventListener('click', this.onClickVue)
},
methods: {
onClickVue: function (e) {
this.$store.commit(mutationTypes.INCREMENT_CLICKS)
}
});
同样的问题,Bootstrap Modals内部的单击不会触发click事件。
相关分类