jQuery的removeClass和addClass函数内(jQuery removeClass

2019-10-17 09:03发布

我得到了以下菜单:

   <ul id="nav" class="nav">
    <li>
     <a class="navitem active" href="javascript:loadTab();">My Profile </a>
    </li>
    <li>
     <a class="navitem search" href="javascript:loadTab();"> Search </a>
    </li>
    <li>
     <a class="navitem" href="javascript:loadTab();">Favorites </a>
    </li>
   </ul>

而我的函数(在头.js文件加载):

function loadTab() {
    jQuery(".navitem").removeClass("active");
       jQuery(".navitem").click(function () {
          jQuery(this).addClass("active");
       });
}   

卸下类“活跃”的作品,加入了类“活动”到点击的元素是行不通的。 有任何想法吗?

最好的祝福!

Answer 1:

作为thatidiotguy说,你在错误的地方移除类。 你想是这样的:

jQuery(".navitem").click(function (event) {
    event.preventDefault();

    jQuery(".navitem").removeClass("active");
    jQuery(this).addClass("active");
});

编辑:而且也没有必要对javascript:loadTab(); 在您的a标签。 改变自己href属性#

<ul id="nav" class="nav">
    <li>
        <a class="navitem active" href="#">My Profile </a>
    </li>
    <li>
        <a class="navitem search" href="#"> Search </a>
    </li>
    <li>
        <a class="navitem" href="#">Favorites </a>
    </li>
</ul>

另外,我加入event.preventDefault();click了链接事件处理程序。



Answer 2:

这是因为,只要你单击该选项卡,要删除的类。 然后您告诉标签调用loadTab,被点击时它。 这再次删除类。 想盗梦空间“梦中之梦”



文章来源: jQuery removeClass and addClass within a function