2011-09-05 31 views
6

Sử dụng jQuery, cách dễ nhất để xác định xem một phần tử cụ thể có hiển thị không? Tôi không có nghĩa là hiển thị trong chế độ xem hiện tại, nhưng trên trang.Làm cách nào để xác định liệu một phần tử DOM cụ thể có hiển thị hay không?

Lý tưởng nhất, hàm sẽ trả về false nếu phần tử hoặc bất kỳ tổ tiên nào của nó có quy tắc CSS như display: none hoặc visibility: hidden. Không cần phải lo lắng về overflow: hidden.

+2

Đùa phải không? bạn đã thử google/hoặc/SOverflow-search "jquery-element-is-visible-hay-not?" –

Trả lời

11

Sử dụng bộ chọn :visible với phương pháp is.

if($('elementSelector').is(':visible')){ 
    //Element is visible 
} 
2

Bạn có thể sử dụng phương pháp is().

$('#element').is(':visible'); 
2

$('div:visible'); sẽ trở lại mọi thứ rõ ràng divs.

Ngoài ra, nó có giá trị lưu ý phần này của jQuery 1.3.2 changelog:

Trong jQuery 1.3.2 một yếu tố có thể nhìn thấy nếu trình duyệt báo cáo của mình offsetWidth hoặc offsetHeight lớn hơn 0. Điều này có nghĩa rằng nếu CSS của phần tử của bạn hiển thị là "none", hoặc bất kỳ hiển thị của phần tử cha/tổ tiên của nó là "none", hoặc nếu chiều rộng của phần tử là 0 và chiều cao của phần tử là 0 thì phần tử sẽ được báo cáo là ẩn.

Các vấn đề liên quan