当另一个div被点击时,我正在显示和隐藏div。我需要能够确定特定的div是显示的还是隐藏的。
最终,我想要做的是,当某个div被点击时,所有其他的“显示/隐藏”div都应该被隐藏,然后确定这个被点击的div的相关div是否正在显示,如果是,则隐藏它,否则显示它。
我还需要根据切换状态在显示/隐藏div中添加/删除一个css类(用于背景颜色)。
下面是我用来切换div的显示/隐藏状态的jQuery代码:
$('#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()的一种方法,但我自己还不知道如何使用它……
发布于 2013-02-25 19:54:47
您可以使用$(div).is(':visible')
发布于 2015-09-02 23:56:17
$('.elem').slideToggle('fast', function() {
alert($(this).is(':visible'));
});
发布于 2016-07-28 15:47:15
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()
调用将其删除,否则元素的类属性(列表)将被附加到它后面。
https://stackoverflow.com/questions/15066304
复制相似问题