jQuery切换类以删除突出显示

时间:2015-06-13 18:11:49

标签: jquery html css events

这应该是一个非常基本的修复。我想在点击已经突出显示的按钮时删除所选的类。我希望在任何给定时间只能突出显示一个按钮。

http://jsfiddle.net/7wy7sjm5/1/

编辑:我之所以首先执行所有删除类的原因是因为当单击一个时,我只希望突出显示一个,而不是先前点击的那些仍然突出显示。当点击已突出显示的同一按钮时,想要删除突出显示。希望这是有道理的。

$(".details-btn").on("click", function(){
var $this = $(this);
//Add/Remove selected for button
$(".details-btn").removeClass("selected");
$this.toggleClass("selected");});

3 个答案:

答案 0 :(得分:1)

$(' .details-btn')传递该类的所有元素的数组并删除该类,然后将该类添加到单击的元素。

表格元素也会使用选择器' .details-btn'来监听任何点击。 $(this)将始终是触发事件的元素。

$("table").on("click", ".details-btn", function(){
   $('.details-btn').removeClass('selected'); 
   $(this).addClass('selected');

});

答案 1 :(得分:0)

使用addClass而不是toggleClass,应该修复它:)

removeClass已经从所有按钮中删除了类,因此您只需要将该类添加到“this”按钮。

$(".details-btn").on("click", function(){
    var $this = $(this);
    //Add/Remove selected for button
    $(".details-btn").removeClass("selected");
    $this.addClass("selected");
});

答案 2 :(得分:0)

试试这段代码:

$(".details-btn").on("click", function(){
    var $this = $(this);
    $(".details-btn").removeClass("selected"); // remove class from all buttons
    $(this).addClass("selected");     // add class to currently clicked button
});