首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >装载量JS中的addClass和removeCLass

装载量JS中的addClass和removeCLass
EN

Stack Overflow用户
提问于 2014-11-02 11:58:30
回答 1查看 1.2K关注 0票数 0

我对JS中的addClass和removeCLass有问题。我想做这样的事:

但是我有一个内容div,我在PHP中加载文件。但是当我加载某物时,脚本重置,第一个li被选中。计划:

我点击事件,它得到新的类和内容是加载的。现在,当我单击events时,页面加载并在第一个li中看到内容但类。

怎么改呢?

编辑:好的,伙计们,我改变了代码,但它仍然不能像我想要的那样工作。当我在url的链接中"#“时,页面会以新的方式加载,我丢失了这个JS。(又开始了)。

代码:

代码语言:javascript
复制
$(document).ready(function () {
    $("#MB1").click(function () {
        $(this).addClass("active");
		$("#MB2").removeClass("active");
		$("#MB3").removeClass("active");
		$("#MB4").removeClass("active");
    });
});

$(document).ready(function () {
    $("#MB2").click(function () {
        $(this).addClass("active");
		$("#MB1").removeClass("active");
		$("#MB3").removeClass("active");
		$("#MB4").removeClass("active");
    });
});

$(document).ready(function () {
    $("#MB3").click(function () {
        $(this).addClass("active");
		$("#MB1").removeClass("active");
		$("#MB2").removeClass("active");
		$("#MB4").removeClass("active");
    });
});

$(document).ready(function () {
    $("#MB4").click(function () {
        $(this).addClass("active");
		$("#MB1").removeClass("active");
		$("#MB2").removeClass("active");
		$("#MB3").removeClass("active");
    });
});
代码语言:javascript
复制
#menu-div ul{
list-style-type:none;
}

.button a{
text-decoration: none;
color:green;
}

.button  a:hover{
color: red;
}

.button.active a{
text-decoration: underline;
}
代码语言:javascript
复制
<div id="menu-div"> 
<ul>
<li id="MB1" class="button active"><a href="?id=start">Home</a></li>
<li id="MB2" class="button"><a href="?id=pro">Projects</a></li>
<li id="MB3" class="button"><a href="#">About Us</a></li>
<li id="MB4" class="button"><a href="?id=con">Contact</a></li>
</ul>
</div>

EN

回答 1

Stack Overflow用户

发布于 2014-11-02 12:07:07

分配单击操作时会发生什么?

代码语言:javascript
复制
$('#menu li a').on('click', function(){
    $('li a.current').removeClass('current');
    $(this).addClass('current');
});

只有现有对象才接收事件处理程序。

你想用这样的东西来代替:

代码语言:javascript
复制
$("body").on('click', '#menu li a', function(){
    $('li a.current').removeClass('current');
    $(this).addClass('current');
});

通过使body成为目标,即使在脚本之后加载数据,事件处理程序也将被设置。

此外,对菜单的任何后续更改都不要求您重置事件处理程序。

编辑

根据对示例代码的更改:

  1. 当您有<a href="#"等等时,按下链接并不会使您离开页面。
  2. 您更改了一些指向<a href="?something"的链接,等等。单击此链接,整个页面将重新加载新的查询字符串。

链接应该异步地获取数据吗?

如果,您应该将jquery返回到原来的方式.用我上面的答案代替你对$(document).ready({[...]的回答。

如果没有,我建议您使用来确保正确的菜单项设置为active

类似于(,我并不真正知道php.此代码可能完全脱离):

代码语言:javascript
复制
<a href="?whatever" class="button <?php if(request.querystring = "whatever") echo "active"; ?>
<a href="?something" class="button <?php if(request.querystring = "something") echo "active"; ?>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26699037

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档