JQuery删除了添加的样式

时间:2014-08-12 09:12:56

标签: javascript jquery backbone.js

我是Javascript的新手, 我正在使用Backbone 所以我添加了这样的样式(点击时链接)

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

我想要清除我在点击新链接时添加的红色边框的上一个链接

我看了下面的链接 jQuery - remove style added with .css() function

所以从本质上讲,我想这样做:

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

我从骨干获得的事件

有一种简单的方法吗?或者这种方法错了吗?

4 个答案:

答案 0 :(得分:4)

我建议使用CSS类添加边框并添加/删除它,如下所示

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');

答案 1 :(得分:2)

如果我清楚地理解你的问题,你需要这样的东西

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

demo

答案 2 :(得分:1)

此解决方案可能如下:

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');
 }

})

在此示例中,单词' event-which-delete-border'和' event-which-add-border'可能是来自JavaScript的所有事件,例如'点击' '鼠标悬停'等等

答案 3 :(得分:1)

您可以使用以下三种方法中的任何一种 -

  1. 您可以使用.attr()来更改元素的样式。

    $(OLDLINK).attr('style', 'border: none');
    $(NewLINK).attr('style','border: 1px solid red');
    

    此方法可以安全地跨浏览器缺陷。

  2. 你正在使用的那个。
  3. 您可以使用上述Bhushan所解释的方法。
  4. 这些差异可以在这里找到 - Visibility attribute question