2010-07-25 59 views
3

如何检查元素是否一次隐藏。即如何通知元素的可见性。jquery检查元素是否被隐藏(连续)

在我的情况下,通过slideUp函数隐藏元素。我应该立刻通知该元素的可见性。

我得到了使用bind()方法的想法。但它没有像事件那样的onHide。那么如何得到这样的?任何建议都会有所帮助!

编辑:

我知道这是可能使用is(':hidden'),但我想检查不断像addEventListener

回答

7
if($('#selector').is(':visible')){ 
    //is visible 
}else{ 
    //is NOT visible threfore is hidden 
} 

编辑 如果不存在 ,那么你将不得不检查不透明度/过滤器属性

so

if($('#selector').css('opacity')!=0){ 
     //is visible//or partially visible//depends on opacity 
    }else{ 
     //is NOT visible threfore is hidden 
    } 

也请务必检查不透明度的跨浏览器

EDIT 2

function checkVisibility(){ 
    //put the visibility checker here 
    setTimeout('checkVisibility',1000)//every 1 second... 
} 

注:类似这样的重复可能会在浏览器变慢

+0

是的,这是好的,但我想不断检查它..如何检查它? – 2010-07-25 15:49:50

+0

使用setInterval或setTimeout ...检查在一分钟内编辑2 – Val 2010-07-25 15:51:08

+0

不要传递字符串,像这样:'setTimeout(checkVisibility,1000)'/ – Cipi 2010-07-25 15:58:53

0

你可以使用效果基本show的回调立即知道元素是何时隐藏的:

function theElementIsHidden() 
{ 
    //What to do when the slideUp animation (element hidden) is completed... 
} 

$("#element").slideUp(200, function(){theElementIsHidden();}