首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >jquery toggleClass,removeClass

jquery toggleClass,removeClass
EN

Stack Overflow用户
提问于 2011-10-06 23:51:59
回答 5查看 7K关注 0票数 2

已解决:

感谢每一个试图帮忙的人

添加了这段代码,它起了作用:

代码语言:javascript
运行
复制
$(function() {
$( ".itemContainer" ).click(function() {
    $(this).toggleClass( "showtheitem", 800 ),
    $(this).prev(".itemContainer").toggleClass("hide"),
    $(".itemContainer").not(this).prev(".itemContainer").removeClass("hide"),    

     $(".itemContainer").not(this).removeClass("showtheitem");
    return false;
});}); 

您可以在http://jsfiddle.net/JKnjz/3/上看到它的工作原理。

我想在单击之前的项目中添加一个类,然后再单击要删除的类。但是,如果我单击每个其他项并将一个类添加到以前的项中.,我还希望删除该类.

试着用代码来解释。我有7分钱

代码语言:javascript
运行
复制
<div class="itemContainer">1</div>
<div class="itemContainer">2</div>
<div class="itemContainer">3</div>
<div class="itemContainer">4</div>
<div class="itemContainer">5</div>
<div class="itemContainer">6</div>
<div class="itemContainer">7</div>

CSS:

代码语言:javascript
运行
复制
.itemContainer {float:left;width:100px;height:100px;background:#000;margin:5px;color:#fff}
.hide {display:none;}
.showtheitem {width:200px;height:200px;}

Javascript:

代码语言:javascript
运行
复制
$(function() {
    $( ".itemContainer" ).click(function() {
        $(this).toggleClass( "showtheitem", 800 ),
        $(this).prev(".itemContainer").toggleClass("hide"),
         $(".itemContainer").not(this).removeClass("showtheitem");
        return false;
    });
});    

例如,如果我单击div数字2,它将类“隐藏”添加到div no. 1,如果我单击div no. 2,它将移除该隐藏类。那部分没问题。

但我有一个问题,如果单击div第2号,它添加类“隐藏”到div 1号,如果我单击例如div第6号。类“隐藏”仍然保留在div上。一号。

我希望类“隐藏”被删除,如果我点击每一个其他的div。

在这里,您可以看到jsfiddle.net/JKnjz/1的工作原理。

我希望我能举出清楚的例子:)

EN

回答 5

Stack Overflow用户

发布于 2012-11-21 06:23:18

请参阅演示链接.,:)

http://api.jquery.com/toggleClass/

票数 1
EN

Stack Overflow用户

发布于 2011-10-07 00:17:56

我不知道你真正想要的行为是什么,但删除“隐藏”类并不难。你可以这样做:

代码语言:javascript
运行
复制
$(function() {
    $( ".itemContainer" ).click(function() {
        $(this).toggleClass( "showtheitem", 800 );
        $('.itemContainer.hide').removeClass('hide');
        $(this).prev(".itemContainer").toggleClass("hide");
        $(".itemContainer").not(this).removeClass("showtheitem");
        return false;
    });
});    

关键是在开始隐藏所需的div之前,删除所有隐藏项的“隐藏”类。先把所有隐藏起来,然后再隐藏你想要的那个,只有那个才会被隐藏。

任何其他预期的行为,如果你给出更多的解释你到底想要什么.

票数 0
EN

Stack Overflow用户

发布于 2011-10-07 00:32:24

就像桑德,我不太明白你想要什么。下面是另一种方法,我已经删除了"toggleClass“业务,因为它可能是令人困惑的部分。听起来你想要的规则是:

  1. 一次只能有一个类showtheitem
  2. 包含类showtheitem的当前项“前面”应该添加类hide

如果我对你的理解是对的,这看上去怎么样?

代码语言:javascript
运行
复制
$(".itemContainer").click(function() {
    $(this).siblings('.itemContainer').removeClass('hide');
    $(this).prev(".itemContainer").addClass("hide");
    $('.showtheitem').removeClass('showtheitem');
    $(this).addClass( "showtheitem", 800 );
});

如果我还不明白,请留言,我们会到的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7681762

复制
相关文章

相似问题

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