作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有这样的模板
<template>
<div>
<div id="hiddenElement">
<MyElement v-for='...' @click="...">
</MyElement>
</div>
<div id="appendElementsHere" />
</div<
</template>
用户可以将元素追加到列表中,所以我有这样的函数:
someFunc(){
const hidden = document.querySelector('#hiddenElement')
const target = document.querySelector('#appendElementsHere')
target.innerHtml += hidden.outerHtml
}
被克隆的元素可以成功附加到#appendElementsHere
,但是点击功能不起作用。我认为可能是 vue 元素中的点击功能,而不是 html。如何将元素克隆为 vue-element,而不仅仅是 html?或任何在脚本(方法)中创建 vue 元素然后附加到 dom 的想法??
最佳答案
从 javascript 的 Angular 来看,您所做的在技术上是正确的,但是点击功能不起作用,因为您在“克隆”元素后没有进行任何数据绑定(bind)。我说“克隆”,因为您所做的只是传递一堆包含 HTML 的字符串。话虽如此,您接下来要做的就是手动将事件监听器添加到克隆的元素。
但是,您可以尝试以更 Vue 的方式来实现,因此您可以创建所需组件的 Vue 实例(在您的情况下为 MyElement),并使用代码传递所有您想要的 Prop /数据,然后将其附加到您需要的元素。
Here's an example以及如何使用按钮进行操作。如果单击“单击以插入”,您将看到 CustomButton 组件是如何附加到按钮右侧的。
谢谢,
关于javascript - 如何在 nuxt 中克隆带有函数的 vue 元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58533961/
我是一名优秀的程序员,十分优秀!