繁体   English   中英

更新列表项的类-jQuery

[英]Updating class of list item - jQuery

很简单的问题,但是现在已经困扰了我近一个小时。 基本上,我想更新列表类onClick,然后在单击另一个项目时再次删除该类。

 <nav>
   <div class="menu-main-menu-container">
     <ul id="menu-main-menu" class="menu">
       <li class="current-menu-item">
         <a class="scroll" href="#top"><span>Home</span></a>
       </li>
       <li class="">
         <a class="scroll" href="#featured_work_anchor"><span>Featured Work</span></a>
       </li>
       <li class="">
         <a class="scroll" href="#about_contact_anchor"><span>About/Contact</span></a>
       </li>               
     </ul>
   </div>
 </nav>

jQuery的

$(document).ready(function() {
    $('#menu-main-menu li').on('click', changeClass);
});

function changeClass() {
    $('#menu-main-menu li').removeClass('current-menu-item');
    $(this).addClass('current-menu-item');
}

JSFiddle ,准备开始了。 感谢您的帮助。 也许我正在错误地解决问题,或者可能缺少一些愚蠢的东西?

我能看到的唯一问题是removeClass()函数,要么不传递任何参数以使li中的所有类都被删除,要么传递要删除的类名。

function changeClass() {
    $('#menu-main-menu li').removeClass('current-menu-item');
    $(this).addClass('current-menu-item');
}

演示: 小提琴 (也在小提琴中您忘了包含jQuery)

您需要传递被设置为当前元素的元素:

$(document).ready(function() {
  $('#menu-main-menu li').on('click', function(){
    changeClass($(this));
  });
});

function changeClass(element) {
  $('#menu-main-menu li').removeClass('current-menu-item');
  element.addClass('current-menu-item');
}

更新小提琴: http : //jsfiddle.net/mw5sgcLn/4/

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM