2009-06-02 3 views
14

Есть ли событие в JQuery, Javascript или DOM, в общем, что я могу подписаться на это, сообщит мне, когда элемент станет видимым или невидимым (display: none)?Событие JQuery/Javascript/DOM Visibility

+0

Возможный дубликат события [onHide() типа в jQuery] (http://stackoverflow.com/questions/2857900/onhide-type-event-in-jquery) – Liam

ответ

30

Есть события для DOMAttrModified и onpropertychange (IE), которые могут отслеживать изменения элементов DOM и запускать событие.

писал об этом с помощью JQuery плагин, который позволяет вносить изменения мониторинговые стилей CSS здесь:

http://www.west-wind.com/weblog/posts/478985.aspx

Это может быть только то, что вам нужно, как вы могли бы сделать что-то вроде:

$("#myControl").watch("display,visibility", function() { showStatus("changed...") }); 
+0

Прохладный плагин. +1 –

+2

Используйте эту внутреннюю анонимную функцию, чтобы увидеть, является ли элемент видимым или нет: $ (this) .is (': visible'); –

+0

Не забывайте про 'непрозрачность'. Мне нравится эта идея :) –