vue click事件中断?

o75abkj4  于 2021-07-06  发布在  Java
关注(0)|答案(1)|浏览(477)

我在vue中有一个点击事件,它在一个链接上启动了一个模态,模态有一个链接将用户引导到另一个站点。一切都按预期进行,直到我刚刚添加了一个谷歌分析点击事件。现在模式打开了,但是到另一个站点的链接只是返回到主页/根目录。有没有办法调用链接上的两个click事件而不中断?
启动模态和链接输出的链接:

<a
              href="https://www.linkout.com"
              rel="noopener"
              @click.prevent="
                openInterstitial;
                $ga.event('link', 'click', 'ISI_link');
              "
              target="_blank"
              >www.linkout.com</a
            >

混合方法:

Vue.mixin({
  methods: {
      openInterstitial(event) {
        if (event) {
          event.preventDefault();
          this.$store.commit('modals/setInterstitialHref', event.target.href);
        }

        this.$store.commit('modals/setShowInterstitial', true);
      }
    }
  });

商店

export const state = () => ({
  interstitial: {
    show: false,
    href: ''
  }
});

export const mutations = {
  setShowInterstitial(state, boolean) {
    state.interstitial.show = boolean;
  },
  setInterstitialHref(state, string) {
    state.interstitial.href = string;
  }
};
j8ag8udp

j8ag8udp1#

我转载了你的问题,似乎你的 openInterstitial 方法根本不会被调用。问题是您使用该方法访问事件数据(不带括号的用法)。正因为如此,你不能像以前那样把他们拴起来,它就不会被处决。如果使用单个处理程序,则只能省略括号。
您可以改为使用带括号的方法,并使用 $event (文档)。

@click.prevent="
  openInterstitial($event);
  $ga.event('link', 'click', 'ISI_link');
"

这样您就可以访问事件数据并链接多个方法。希望能解决你的问题!

相关问题