我正在尝试给动态创建的元素添加@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”。我的问题是如何定位这个方法,或者有没有更好的动态创建元素的方法?
谢谢你:)
2条答案
按热度按时间sr4lhrrt1#
试试这个。
<div onclick="window.alert(${this.myID})"></div>
k2fxgqgv2#
不要直接修改DOM!
这对于像Vue这样的FE框架来说是非常非常重要的,虽然直接修改DOM是可能的,但是它会引起各种各样的问题。
在讨论如何添加
onclick
侦听器之前,您应该考虑您的目标是什么,然后根据您的需要选择解决方案。您很可能可以在模板语法中解决这个问题。如果不能,您也可以使用JSX或呈现函数。如果有特殊原因需要包含
dom.innerHTML
之类的内容,您可以将其包含在问题中吗?