首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >是否让JavaScript slideToggle在打开另一个目录时关闭活动目录?

是否让JavaScript slideToggle在打开另一个目录时关闭活动目录?
EN

Stack Overflow用户
提问于 2012-03-13 02:39:31
回答 3查看 1.6K关注 0票数 1

这是我到目前为止的一个演示:http://www.betafreshmedia.com/nathan/coffee.html

我知道还有很多类似的问题,但是,我不能根据我的语法来调整它们的语法,因为每个人的语法都非常不同。这是我的jQuery:

代码语言:javascript
复制
$(".trigger").click(function() {
$(this).find('ul.coffeetype').slideToggle();
});

我想要一种最小的,直接的方式来继续为每个div使用相同的类,并且一次只允许打开一个。当你点击一个关闭的div时,我希望打开的那个滑出视线,而新的滑到各自的位置。

HTML:

代码语言:javascript
复制
<div class="trigger">
<img src="images/coffeetype1.png" />
<ul class="coffeetype">
    <li>International</li>
    <li>Regional</li>
    <li>International</li>
    <li>Regional</li>
    <li>International</li>
    <li>Regional</li>
    <li>International</li>
    <li>Regional</li>
    <li>International</li>
    <li>Regional</li>
    <li>International</li>
    <li>Regional</li>
</ul>
</div>
<div class="trigger">
<img src="images/coffeetype1.png" />
<ul class="coffeetype">
    <li>International</li>
    <li>Regional</li>
    <li>International</li>
    <li>Regional</li>
    <li>International</li>
    <li>Regional</li>
    <li>International</li>
    <li>Regional</li>
    <li>International</li>
    <li>Regional</li>
    <li>International</li>
    <li>Regional</li>
</ul>
</div>
<div class="trigger">
<img src="images/coffeetype1.png" />
<ul class="coffeetype">
    <li>International</li>
    <li>Regional</li>
    <li>International</li>
    <li>Regional</li>
    <li>International</li>
    <li>Regional</li>
    <li>International</li>
    <li>Regional</li>
    <li>International</li>
    <li>Regional</li>
    <li>International</li>
    <li>Regional</li>
</ul>
</div>

为了演示的目的,现在连续三次做同样的事情。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-03-13 02:57:29

代码语言:javascript
复制
$(document).ready(function() {
    $(".trigger").click(function() {
        var $el = $(this).find('ul.coffeetype');
        var $opened = $('.toggledDown').not($el);
        $opened.toggleClass('toggledDown');
        $opened.slideToggle();
        $el.toggleClass('toggledDown');
        $el.slideToggle();
    });
});

在打开活动文件之前,跟踪打开的文件并将其关闭。

编辑添加了".not($el)“,所以你仍然可以上下切换相同的菜单。

票数 1
EN

Stack Overflow用户

发布于 2012-03-13 02:49:11

如果我的理解是正确的:

JS

代码语言:javascript
复制
$(".trigger").hover(function() {
   $(this).find('.coffeetype').slideToggle();
});​

CSS

代码语言:javascript
复制
.coffeetype {
    display: none;
}​

参考

票数 0
EN

Stack Overflow用户

发布于 2012-03-13 02:54:58

将您的代码更改为以下代码:

代码语言:javascript
复制
$(".trigger").click(function() {
    $('ul.coffeetype').slideUp();
    $(this).find('ul.coffeetype').slideToggle();
});​

这将使所有打开的列表最先关闭。

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

https://stackoverflow.com/questions/9672868

复制
相关文章

相似问题

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