当点击另一个div时,我正在显示并隐藏div。我需要能够确定是否显示或隐藏了特定的div。
最终我要做的是,当点击某个div时,所有其他“显示/隐藏”div应该被隐藏,然后确定clicked-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的答案,表明我应该能够检查显示状态(“无”)或可见属性,但是检入控制台上没有任何一个被设置在显示/隐藏的div上。
我创建了一个jsFiddle让你搞砸了。
jQuery documentation on toggle()讨论了关于页面下方3/4的一个布尔参数“showOrHide”,其中一种方法是使用toggle(),但是我还没弄清楚如何自己用它......
答案 0 :(得分:11)
您可以使用$(div).is(':visible')
答案 1 :(得分:1)
$('.elem').slideToggle('fast', function() {
alert($(this).is(':visible'));
});
答案 2 :(得分:0)
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.
注意:当一个类被添加到元素中时,该元素的class属性(列表)将被附加它,除非被.removeClass()
调用删除。