2013-03-25 88 views
0

我有两个跨,用户可以点击链接,和被点击的跨度时,它删除一个类,并增加了在点击一个其他类:JQuery的删除和添加跨度级

enter image description here

HTML:

<span class="resCheck label label-success"> 
    <a data-method="get" class="resCheckLink" href="trafikskola?utf8=%E2%9C%93&amp;query=lund&  
    amp;sort=asc">Cheap prices</a> 
</span> 
<span class="resCheck label"> 
    <a class="resCheckLink" data-method="get" href="trafikskola?utf8=%E2%9C%93&query=lund& 
    sort=desc">Expensive prices</a> 
</span> 

JQuery的:

$(function(){ 
   $('.resCheckLink').click(function(e){ 
       $('.resCheck.label').removeClass('label-success'); 
       $(this).parent().addClass('label-success') 
   }); 
}); 

但它剂量的工作,它dosent添加和删除类,我该如何解决这个问题?

+0

目前还不清楚你问的是什么,但我不认为parent()是正确的解决方案。 – isherwood 2013-03-25 13:04:12

+0

如果使用toggleClass()而不是手动添加和删除类,它会更容易。 – dinukadev 2013-03-25 13:06:45

+0

我一直有问题.parent()选择器没有做你期望的事情。尝试使用.closest('。resCheck')替换.parent() - 我发现最接近的选择器通常会做同样的事情,如果您调整层次结构(如果需要在另一个内在路上?),它通常仍然找到正确的元素。 – Sean 2013-03-25 13:16:42

回答

1

试试这个

$(function(){ 
    $('.resCheckLink').click(function(e){ 
     $('.resCheck').removeClass('label-success'); 
     $(this).parent().addClass('label-success'); 
    }); 
}); 
+0

它首先在点击时设置类,然后在第一个点上改变。一样。 – SHUMAcupcake 2013-03-25 13:06:33

+0

@SHUMAcupcake是为u.I更新的代码看到一次 – PSR 2013-03-25 13:07:31

+0

没有它变回第一个。剂量工作 – SHUMAcupcake 2013-03-25 13:10:02

0

试试这个。

$(function(){ 
    $('.resCheckLink').click(function(e){ 
     $('span.resCheck').removeClass('label-success'); 
     $(this).parent().addClass('label-success') 
    }); 
}); 
0

它确实有效,我想象你不正确地设计元素或什么东西?我添加了return false以防止链接正常工作。

jsFiddle

$(function(){ 
    $('.resCheckLink').click(function(e){ 
     $('.resCheck.label').removeClass('label-success'); 
     $(this).parent().addClass('label-success'); 
     return false; 
    }); 
}); 
+0

这项工作,但现在我的链接dosent工作。 – SHUMAcupcake 2013-03-25 13:08:43

+0

我对代码所作的更改是'返回false',以便测试它。删除它,这是你问题中的确切代码。它看起来对我是正确的。 – 2013-03-25 13:09:42

+0

对不起,但链接dosent工作... – SHUMAcupcake 2013-03-25 13:10:49

0

试试这个

$(function(){ 
    $('.resCheckLink').click(function(e){ 
     $('.resCheck').removeClass('label-success'); 
     $(this).parent().addClass('label-success') 
    }); 
}); 
1

尝试......

$(function(){ 
    $('.resCheckLink').click(function(e){ 
     $('.resCheck').removeClass('label-success'); 
     $(this).parent().addClass('label-success'); 
    }); 
}); 

Working DEMO

0

您删除和添加同一类,所以你将无法真正监测,

$('.resCheck.label').removeClass('label-success'); 
    $(this).parent().addClass('label-success'); 

所以请创建具有不同风格的另一个类,然后尝试,上面由PSR给出答案。

会做:)

+1

你是对的。 – SHUMAcupcake 2013-03-25 13:12:57