Jestem nowy w JavaScript, używam kręgosłupa, więc dodam w ten sposób styl (do linku, gdy jego kliknięcie)

     $(eventC.target.parentNode).css('border', '1px solid red');

Chcę, aby poprzedni link został wyczyszczony z czerwonej granicy, którą dodałem, gdy kliknął na nowy link

Spojrzałem na link poniżej jQuery - Usuń styl dodany za pomocą .CSS () Funkcja

Więc w istocie chcę to zrobić:

$(OLDLINK).css('border', 'none');
$(NewLINK).css('border', '1px solid red');

Z wydarzeniami dostaję z backbone

Czy jest prosty sposób na to? czy to jest takie podejście źle?

0
Jack 12 sierpień 2014, 13:12

3 odpowiedzi

Najlepsza odpowiedź

Proponuję używanie klasy CSS do dodawania granicy i dodania / usuwania go jak poniżej

CSS:

.borderRed
{
  border : 1px solid red;
}

JQuery:

//remove border from old link
$('.borderRed').removeClass('borderRed');

// add border in new link
$(eventC.target.parentNode).addClass('borderRed');
4
CodesInChaos 12 sierpień 2014, 15:22

Jeśli wyraźnie zrozumiem twoje pytanie, potrzebujesz czegoś takiego

var container = $("div.parent").on("click", "a", function(){
    $(this).addClass("selected");
    container.find("a").not($(this)).removeClass("selected");
});

próbny

2
Aleksei Bulgak 12 sierpień 2014, 09:22

To rozwiązanie może być jak:

Backbone.View.extend ({

 events: {
   "event-which-delete-border a.link":"changeLink",
   "event-which-add-border a.link":"changeLink"
 },
changeLink:function(event) {

 if (event.type == 'event-which-delete-border') {
   $('a.link').css('border', 'none');
 } else if (event.type == 'event-which-add-border')
   $('a.link').css('border', '1px solid red');
 }

})

W tym przykładzie słowa "impreza-która-delete-border" i "zdarzenie - która-add-granica" może być wszystkimi wydarzeniami z JavaScript, takich jak "kliknij" "Mousever" itd

1
Waldo Jeffers 12 sierpień 2014, 09:27