我是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');
我从骨干获得的事件
有一种简单的方法吗?或者这种方法错了吗?
答案 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");
});
答案 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)
您可以使用以下三种方法中的任何一种 -
您可以使用.attr()来更改元素的样式。
$(OLDLINK).attr('style', 'border: none');
$(NewLINK).attr('style','border: 1px solid red');
此方法可以安全地跨浏览器缺陷。
这些差异可以在这里找到 - Visibility attribute question