2010-07-25 89 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();}