1

我得到以下菜单:

   <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");
       });
}   

删除“活动”类有效,将“活动”类添加到单击的元素不起作用。有任何想法吗?

最好的祝福!

4

2 回答 2

2

正如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事件处理程序中添加了。

于 2012-11-02T15:20:34.490 回答
0

这是因为每当您单击选项卡时,都会删除该类。然后,您会告诉选项卡在单击时调用 loadTab。这再次删除了类。Think Inception“梦中之梦”

于 2012-11-02T15:18:15.450 回答