我正试图从jQuery转换到Vue.js,但卡住了。页面上有三个按钮。当我点击一个按钮时,我希望所有其他按钮的背景颜色变为绿色,并将被点击的按钮的颜色更改为黑色。
使用jQuery只需要两行代码,但我无法弄清如何在Vue.js中实现。此外,Vue.js似乎没有this关键字。
同时,我想直接应用原始的CSS background-color属性,而不是应用类。
以下是我的jQuery代码 - 非常简单。
使用jQuery只需要两行代码,但我无法弄清如何在Vue.js中实现。此外,Vue.js似乎没有this关键字。
同时,我想直接应用原始的CSS background-color属性,而不是应用类。
以下是我的jQuery代码 - 非常简单。
<div class="main-content-area">
<div class="btn">Click me!</div>
<div class="btn">Click me!</div>
<div class="btn">Click me!</div>
</div>
const Example = new Vue({
el: '.main-content-area',
methods: {
addEventListeners() {
$(document).ready(function() {
$(".btn").click(function() {
$(".btn").css("background-color", "green"); // Make all buttons green
$(this).css("background-color", "black"); // Make the clicked button black
});
});
}
},
mounted: function() {
this.addEventListeners();
}
})
使用Vue.js - 我只做到了这一步...
<div class="main-content-area">
<div class="btn" @click="changeColor">Click me!</div>
<div class="btn" @click="changeColor">Click me!</div>
<div class="btn" @click="changeColor">Click me!</div>
</div>
const Example = new Vue({
el: '.main-content-area',
methods: {
changeColor() {
// Change color to green for all .btn elements
// and change color for clicked .btn to black
}
})
$children
或$root
。如果您使用其中任何一个,那么现在您的组件与包含组件紧密耦合,这会破坏vue.js
作为框架的理念。 - Archeg$children
或$root
的代码,除非真的必要。请查看我的答案。 - Archeg