我有一个元素<p id="message" class="hidden">...</p>
我的CSS:
.hidden{
display:none;
}
.show{
display:block;
}
问题:我需要在JQUERY中提供帮助,以检查该元素是隐藏还是显示。如果显示,请在2秒后隐藏它(可能是淡出)。我需要帮助检查元素的类是否有效。我不知道如何继续
当前的JQuery:
$(function() {
setTimeout(function() {
$("#message").hide('blind', {}, 500)
}, 2000);
});
答案 0 :(得分:2)
您可以使用以下
检查元素是否可见$(element).is(":visible")
取自https://api.jquery.com/visible-selector/
visibility: hidden
或opacity: 0
的元素被认为是可见的,因为它们仍占用了布局中的空间。
您可以执行以下操作
if($("#message").is(":visible"))
{
$("#message").delay(2000).fadeOut();
}
答案 1 :(得分:2)
答案 2 :(得分:1)
使用.hasClass()
检查是否有.hidden或.show
答案 3 :(得分:0)
您也可以使用
$(".hidden").css("display")
或
$("#message").css("display")
在if / else语句中检查对象是否已经可见,或者不是
见css method - jquery API
答案 4 :(得分:0)
两种方式:
if ($('p').hasClass('hidden') == true) {
//Script if it's hidden
}
else {
//Script if it's visible
}
或者
if ($('p').css('display') == 'block') {
//Script if it's visible
}
else {
//Script if it's hidden
}
答案 5 :(得分:0)
如果要检查元素是否具有类$(selector).hasClass('yourClass');
我已使用setInterval
调整了您的代码,因此您可以清楚地看到hasClass的工作原理。
var $message = $('#message');
setInterval(function() {
if($message.hasClass('show')) {
$message.removeClass('show');
$message.fadeOut('slow',function() {
$message.addClass('hide');
});
} else {
$message.removeClass('hide');
$message.fadeIn('slow',function() {
$message.addClass('show');
});
}
}, 2000);
答案 6 :(得分:0)
你可以检查这样的可见性
$(document).ready(function(){
if ($('#myDiv').is(":visible"))
{
//visible do some than
}
else
{
//not visible do some else
}
});
<强> JSFIDDLE 强>