首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >jQuery显示一个分区并隐藏其他分区

jQuery显示一个分区并隐藏其他分区
EN

Stack Overflow用户
提问于 2011-07-29 06:56:08
回答 1查看 11K关注 0票数 3

http://jsfiddle.net/yrM3H/2/

我有以下代码:

代码语言:javascript
运行
复制
jQuery(document).ready(function() {
  jQuery(".toggle").next(".hidden").hide();
  jQuery(".toggle").click(function()
  { 
    $('.active').toggleClass('active').next('.hidden').slideToggle(300);
    $(this).toggleClass('active').next().slideToggle("fast");   

});
});

我有多个<div>,我的想法是当我打开一个<div>时,它会切换另一个<div>。然后,当我点击另一个<div>时,它会隐藏打开的<div>。因此,一次只有一个<div>是打开的。

我唯一的问题是,在这段代码中,当我试图关闭一个已经打开的<div>时,它将关闭,然后再次打开。因此,总有一个<div>是打开的。

任何帮助都将不胜感激,谢谢。

我在下面添加了HTML和CSS。一切正常,除了我不能得到它,所以它们都被关闭了。

我有5个这样堆叠在一起的包装纸。

**为清晰起见而编辑**

代码语言:javascript
运行
复制
// HTML
<div class="toggle"></div>
<div  class="hidden"></div>

// CSS
.toggle {width:398px; height:48px; cursor: pointer;}
.hidden {width:300px; height:75px; background-color:#333333; margin-left:50px; text-indent:25px;}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-07-29 07:27:31

这将修复它:http://jsfiddle.net/yrM3H/3/

代码语言:javascript
运行
复制
  jQuery(".toggle").click(function()
  { 
    $('.active').not(this).toggleClass('active').next('.hidden').slideToggle(300);
    $(this).toggleClass('active').next().slideToggle("fast");   
  });

您必须使用.not()从".active“部分中排除所单击的元素,因为所单击的元素是".active”to。

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

https://stackoverflow.com/questions/6866747

复制
相关文章

相似问题

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