javascript - 在附加()元素之后的VueJS中,点击方法不起作用
问题描述
我可以在 jquery 中使用$(document).on('click', '.newButton', function(){});
如何在 VUE 解决同样的问题的方法来解决这个问题
new Vue ({
el: '#app',
data: {
oldButton: function () {
$('#app').append('<button v-on:click="newButton">The New Button</button>');
},
newButton: function () {
console.log('Hello World!');
},
},
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.5.17/vue.min.js"></script>
<div id="app">
<button v-on:click="oldButton">The Old Button</button>
</div>
解决方案
在 vue.js 中,您通常不会在 javascript 中操作 DOM;如果你想有条件地显示一个组件,你可以使用v-if
orv-show
指令;而且您还应该将您的函数定义为,methods
而不是data
:
new Vue ({
el: '#app',
data: {
showNewButton: false
},
methods: {
oldButton: function () {
this.showNewButton = true;
},
newButton: function () {
console.log('Hello World!');
},
},
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.5.17/vue.min.js"></script>
<div id="app">
<button v-on:click="oldButton">The Old Button</button>
<button v-if="showNewButton" v-on:click="newButton">The New Button</button>
</div>
推荐阅读
- kubernetes - Minikube 失去对节点的跟踪
- mysql - MySQL 从一个表中选择唯一记录,其中两个选择查询使用 NOT IN
- python - 为什么我的 ARIMA 预测远小于实际值?
- python - 无法从“身份验证”导入名称“bot_token”
- linux - 如何在 aws cli 中使用“cat”命令查看 S3 存储桶中的前 100 行 .csv 文件?
- r - dplyr::summarise 适用于 n() 但不适用于 sd() 或 mean() -“缺少参数“x”,没有默认值”
- python - Python:当条件为真时停止一段时间?
- c# - 如何使用 Unity 将立体图像显示到 VR 耳机
- webpack - 如何在 Next.js 中实现正确的服务器端堆栈跟踪行号?
- java - 使用 java.net.URL 发送 API 密钥