jQuery函数需要两次单击

时间:2012-08-24 22:04:05

标签: jquery click

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

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

有没有办法让它一键完成?

谢谢 - 乔

2 个答案:

答案 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; }

答案 1 :(得分:0)

else分支中,您可能需要添加

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