首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何确定jQuery切换的当前状态()

如何确定jQuery切换的当前状态()
EN

Stack Overflow用户
提问于 2013-02-25 19:49:56
回答 3查看 23.9K关注 0票数 9

当另一个div被点击时,我正在显示和隐藏div。我需要能够确定特定的div是显示的还是隐藏的。

最终,我想要做的是,当某个div被点击时,所有其他的“显示/隐藏”div都应该被隐藏,然后确定这个被点击的div的相关div是否正在显示,如果是,则隐藏它,否则显示它。

我还需要根据切换状态在显示/隐藏div中添加/删除一个css类(用于背景颜色)。

下面是我用来切换div的显示/隐藏状态的jQuery代码:

代码语言:javascript
运行
复制
$('#movieListTable').on('click', 'div.vitalsTable', function (e) {

    // Don't do anything if the Edit button or Delete checkbox is clicked
    if (event.target.className !== 'btnEditMovie' && event.target.className !== 'chkDeleteMovie') {

        $(this).parent().parent().find('div.detailsTable').toggle('blind','easeInOutQuart', 300);
    }
});

奇怪和令人沮丧的是,我读到的所有东西,包括SO的答案,都表明我应该能够检查显示状态("none")或visible属性,但在控制台中检查正在显示/隐藏的div时,这两个属性都没有设置。

我创建了一个jsFiddle供您摆弄。

jQuery documentation on toggle()在页面的四分之三处讨论了一个布尔参数"showOrHide“,它是使用toggle()的一种方法,但我自己还不知道如何使用它……

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-02-25 19:54:47

您可以使用$(div).is(':visible')

票数 23
EN

Stack Overflow用户

发布于 2015-09-02 23:56:17

代码语言:javascript
运行
复制
$('.elem').slideToggle('fast', function() {
    alert($(this).is(':visible'));
});
票数 2
EN

Stack Overflow用户

发布于 2016-07-28 15:47:15

代码语言:javascript
运行
复制
var className = $(el).attr("class"); 

可以从那里检索当前类,逻辑可以接管、测试和修改元素:

  • if(className == "yourCss")
  • el.addClass("YourCSS");
  • el.removeClass("YourCSS");

我仍然相信jvnill's answer是有效的,除非你必须测试多个类的情况。

toggle():只需在所选元素的hide() and show()by changing the CSS display property.之间切换

注意:作为一个类被添加到元素中,除非通过.removeClass()调用将其删除,否则元素的类属性(列表)将被附加到它后面。

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

https://stackoverflow.com/questions/15066304

复制
相关文章

相似问题

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