javascript - 为什么 $ ('a.current' ).removeClass ('current' );不管用?

标签 javascript parent-child jquery jquery-tools

为什么 $('a.current').removeClass('current'); 不适用于此 jquery 选项卡? http://jsfiddle.net/laukstein/ytnw9/8/

 //full JS in http://jsfiddle.net/laukstein/ytnw9/8/
 $(function(){
 var list=$('#list'),
     elementsPerRow=-1,
     loop=true,
     // find first image y-offset to find the number of images per row
     topOffset=list.find('a:eq(0)').offset().top,
     numTabs=list.find('li').length-1,
     current,newCurrent;

 function changeTab(diff){
  // a.current set by jQuery Tools tab plugin
  $('li.current').removeClass('current');
  current=list.find('a.current').parent('li').addClass('current').index();
  newCurrent=(loop)?(current+diff+numTabs+1)%(numTabs+1):current+diff;
 if(loop){
   if(newCurrent>numTabs){newCurrent=0;}
   if(newCurrent<0){newCurrent=numTabs;}
 }else{
   if(newCurrent>numTabs){newCurrent=numTabs;}
   if(newCurrent<0){newCurrent=0;}
 }
  // don't trigger change if tab hasn't changed (for non-looping mode)
 if (current!=newCurrent){
   list.find('li').eq(current).removeClass('current');
   list.find('li').eq(newCurrent).addClass('current').find('a').trigger('click'); // trigger click on tab
 }
 }
 list
  // set up tabs
  .tabs("#content",{effect:'ajax',history:true, xonBeforeClick:function(){changeTab(0)}})
  // find number of images on first row
  .find('a').each(function(i){
      if(elementsPerRow<0&&$(this).offset().top>topOffset){
         elementsPerRow=i;
      }
  });
 //$('a').filter('.current').parent('li').addClass('current'); // Why does not work?
 //$('a.current').parent('li').addClass('current'); // Why does not work?

 $('ul#list li').click(function(){$('li.current').removeClass('current');$(this).addClass('current')});
 $('a.current').removeClass('current'); // Why does not work?
});

HTML:

<ul id="list">
    <li><a href="one.html" title="one">1</a></li>
    <li><a href="two.html" title="two">2</a></li>
    <li><a href="three.html" title="three">3</a></li>
</ul>
<div id="content"></div>​

最佳答案

据我所知(我还没有运行您的代码的工作页面),但似乎“当前”类仅适用于“li”元素。

我认为你的 $("a.current") 将始终包含 0 个元素。

关于javascript - 为什么 $ ('a.current' ).removeClass ('current' );不管用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3890077/

相关文章:

html - 如何在断点之前忽略外部/父元素

jquery - 使用 jQuery 检查子项是否是父项的唯一内容

json - 地理定位 API 和 AJAX 请求

javascript - 是否可以禁用网页上的查找功能,而不仅仅是 CTRL + F?

javascript - 打开连接到跳转链接 anchor 的 Accordion 面板

javascript - 初始化/onInit 函数后 Angular 属性变得未定义

javascript - 将事件绑定(bind)到 div 但 'not' 内部 div

javascript - jquery .position().top 和 javascript .offsetTop 做同样的事情吗?

javascript - 从 Jquery 访问 cookie 总是返回未定义

jquery - Google Reader 喜欢延迟加载 HTML 内容