javascript - vue js 中组件加载时默认点击按钮

标签 javascript html vue.js vuejs2 vue-component

我在 template 内的 vue 组件中有一个按钮,如下所示:

  <a href="#" @click="openTab" class="border-red px-8" id="activeSlide" data-target-quote="#yvoefrance">
    <img :src="inactive_logo[0]" class="logo" alt="yvoefrance logo" />
  </a>

我希望刷新页面后加载组件时默认单击它,如何实现?我尝试遵循但对我不起作用。

我认为创建了正确的位置。有人可以帮忙吗?预先感谢您。

export default {
  name: "component.showcase",
  components: {
    // ...
  },
  data() {
    return {
      // data here....
    };
  },
  created() {
    document.querySelector("#activeSlide").click();
  },
  mounted() {},
  beforeDestroy() {},
  computed: {},
  methods: {
    openTab: function(e) {
      e.preventDefault();
      const target_tab = e.target.parentElement.dataset.targetQuote;

      document.querySelector(target_tab).classList.add("active");
      e.target.src = require(`@/assets/img/testimonials/${target_img}_active.png`);
    }
  }
};

最佳答案

单击按钮时应调用一个方法:

<button @click="someMethod">Show Content</button>

然后您可以从生命周期 Hook 以编程方式调用该方法,而不是尝试手动触发按钮上的单击:

methods: {
  someMethod() {
    console.log('someMethod called');
  }
},
created() {
  this.someMethod();  // Run the button's method when created
}

编辑以匹配您的编辑:

您正在使用 DOM 操作,但应该操作数据并让 Vue 处理 DOM。以下是一个基本示例,说明如何执行您想要的操作:

new Vue({
  el: "#app",
  data() {
    return {
      logos: [
        {
          urlInactive: 'https://via.placeholder.com/150/000000/FFFFFF',
          urlActive: 'https://via.placeholder.com/150/FFFFFF/000000',
          isActive: false
        },
        {
          urlInactive: 'https://via.placeholder.com/150/666666/FFFFFF',
          urlActive: 'https://via.placeholder.com/150/999999/000000',
          isActive: false
        }
      ]
    }
  },
  methods: {
    toggleActive(logo) {
      logo.isActive = !logo.isActive;
    }
  },
});
<div id="app">
  <a v-for="logo in logos" @click="toggleActive(logo)">
    <img :src="logo.isActive ? logo.urlActive : logo.urlInactive" />
  </a>
</div>
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.5.17/vue.js"></script>

关于javascript - vue js 中组件加载时默认点击按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65852590/

相关文章:

javascript - 如何从组件内部找出哪些组件被单击

php - 加载程序,它还显示网页加载的百分比

jQuery 模态窗口不会加载

javascript - 计算页面上具有 id 属性的列表元素的数量

javascript - 如何设置 Vue 路由或覆盖后退按钮以像应用程序一样运行

javascript - 立即输出所有表单填写错误的消息

javascript - 我怎样才能一次隐藏 Highcharts 中的所有系列

javascript - 动画 html 元素的宽度

javascript - 为什么 console.log(window) 有效但 JSON.stringify(window) 无效,我怎么能打败它?

javascript - VueJS 从方法访问模型