1

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

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

有没有办法让它一键工作?

谢谢 - 乔

4

2 回答 2

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; }
于 2012-08-24T22:08:35.527 回答
0

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

$('a#tab5').addClass('current');
于 2012-08-24T22:14:39.590 回答