简体   繁体   English

如何在VueJS中将类添加到项目

[英]How to add class to an item in VueJS

https://codepen.io/nuzze/pen/yLBqKMY My problem is the next one: I have this list on my Vue data: https://codepen.io/nuzze/pen/yLBqKMY我的问题是下一个:我的Vue数据上有以下列表:

{
    name: 'Camp Nou',
    id: 'campNou'
},
{
    name: 'Abran cancha',
    id: 'abranCancha'
}

And I have a external function to adding class to both items: 我有一个外部函数将类添加到两个项目中:

var abranCanchabutton = $(".abranCancha-fav");
var campNoubutton = $(".campNou-fav");
window.onload = () => {
//abranCancha
if (localStorage.getItem('abranCancha')=='true') {
  abranCanchabutton.removeClass("favorite");
  abranCanchabutton.addClass("unfavorite");
  document.getElementById('abranCancha').classList.add('favorites');
  abranCanchabutton.attr("onclick", "quitabranCancha()");
}
else {
  abranCanchabutton.removeClass("unfavorite");
  abranCanchabutton.addClass("favorite");
  abranCanchabutton.attr("onclick", "favabranCancha()");
}
//campNou
if (localStorage.getItem('campNou')=='true') {
  campNoubutton.removeClass("favorite");
  campNoubutton.addClass("unfavorite");
  document.getElementById('campNou').classList.add('favorites');
  campNoubutton.attr("onclick", "quitcampNou()");
}
else {
  campNoubutton.removeClass("unfavorite");
  campNoubutton.addClass("favorite");
  campNoubutton.attr("onclick", "favcampNou()");
}
}
//functions
function favabranCancha() {
  document.getElementById('abranCancha').classList.add('favorites');
  localStorage.setItem('abranCancha', 'true');
  abranCanchabutton.removeClass("favorite");
  abranCanchabutton.addClass("unfavorite");
  abranCanchabutton.attr("onclick", "quitabranCancha()");
}
function quitabranCancha() {
  document.getElementById('abranCancha').classList.remove('favorites');
  localStorage.removeItem('abranCancha');
  abranCanchabutton.removeClass("unfavorite");
  abranCanchabutton.addClass("favorite");
  abranCanchabutton.attr("onclick", "favabranCancha()");
}
function favcampNou() {
  document.getElementById('campNou').classList.add('favorites');
  localStorage.setItem('campNou', 'true');
  campNoubutton.removeClass("favorite");
  campNoubutton.addClass("unfavorite");
  campNoubutton.attr("onclick", "quitcampNou()");
}
function quitcampNou() {
  document.getElementById('campNou').classList.remove('favorites');
  localStorage.removeItem('campNou');
  campNoubutton.removeClass("unfavorite");
  campNoubutton.addClass("favorite");
  campNoubutton.attr("onclick", "favcampNou()");
}

So, when you click the button "add to favorites", "unfavorite" class is added to the item selected, and then, if you click the button "remove from favorites", "unfavorite" class is removed and "favorite" class it's added. 因此,当您单击“添加到收藏夹”按钮时,“不喜欢的”类将添加到所选的项目中,然后,如果您单击“从收藏夹中删除”按钮,则“不喜欢的”类将被删除,而“收藏夹”的类是添加。 Well, I want to get the same thing but with Vue. 好吧,除了Vue,我想得到同样的东西。 I mean, I don't want to create functions for each item, I want a function that automatically adds the class to the selected item. 我的意思是,我不想为每个项目创建函数,而是想要一个将类自动添加到所选项目的函数。 Please I need heelp with this. 拜托,我需要这个。

Thanks and sorry for my poor english :( 谢谢,抱歉我的英语不好:(

I forked your pen with the solution

https://codepen.io/christiancazu/pen/mdbjLVN

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM