VUE将onclick事件添加到动态创建的元素

piv4azn7  于 2022-12-23  发布在  Vue.js
关注(0)|答案(2)|浏览(253)

我正在尝试给动态创建的元素添加@click事件。我的代码是:

const app = Vue.createApp({
 data() {
  return {
   myID: 24,
  };
 },

 ...

 methods: {
  mymethod(ID) {
   ...
 },
  otherFunction() {
   ...
   dom.innerHTML += `<div onclick="mymethod(${this.myID})"></div>`;
  }
});

所以在点击div之后,控制台显示“alert is not defined”。我的问题是如何定位这个方法,或者有没有更好的动态创建元素的方法?
谢谢你:)

sr4lhrrt

sr4lhrrt1#

试试这个。<div onclick="window.alert(${this.myID})"></div>

k2fxgqgv

k2fxgqgv2#

不要直接修改DOM!

这对于像Vue这样的FE框架来说是非常非常重要的,虽然直接修改DOM是可能的,但是它会引起各种各样的问题。
在讨论如何添加onclick侦听器之前,您应该考虑您的目标是什么,然后根据您的需要选择解决方案。
您很可能可以在模板语法中解决这个问题。如果不能,您也可以使用JSX或呈现函数。如果有特殊原因需要包含dom.innerHTML之类的内容,您可以将其包含在问题中吗?

相关问题