2012-08-24 52 views
1

如果存在特定的类('current'),当单击一个选项卡时,我需要调整一个元素的CSS。点击该选项卡时,会添加类“当前”。代码我有工作,但它需要两次点击 - 我认为,因为在第一次点击,类被添加,然后第二次,jQuery检测到它。这里的jQuery代码:jQuery函数需要两次点击

$('ul.tabs a').click(function() { 
    if($('a#tab5').hasClass('current')) { 
     $('#rightCorner').css("top","1px"); 
    } else { 
     $('#rightCorner').css("top","7px"); 
    }; 
}) 

有没有办法让它的工作只需点击一下?

感谢 - 乔

+0

为什么点击选项卡上添加一个类?我想在回答你的问题之前,我需要查看所有相关的代码。 –

回答

0

您可以组合,增加了current类和监控tab5这个点击处理程序的代码?这允许您添加该类,然后执行检查。在你的情况下,操作顺序出错。

$('ul.tabs a').click(function() {  
    $('ul.tabs a').removeClass('current'); 
    $(this).addClass('current'); 
    if (this.id == 'tab5') { 
      $('#rightCorner').css("top","1px"); 
    } 
    else { 
      $('#rightCorner').css("top","7px"); 
    } 
}) 

更新:

可能更容易使用CSS来代替if语句的只是处理选项卡5。

ul.tabs a#tab5 { top: 7px; } 
ul.tabs a#tab5.current { top 1px; } 
+0

工作完美!谢谢吨。 –

+0

@ user1286623 - 如果此解决方案适用于您,请在我的答案旁边勾选复选标记。谢谢! – mrtsherman

+0

终于想通了。抱歉耽搁了。 –

0

else分支,你可能需要添加

$('a#tab5').addClass('current');