猿问

捕获Vue应用程序中的所有点击事件

我需要捕获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事件。


萧十郎
浏览 451回答 3
3回答
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答