Определите, является ли коллекция элементов видимой, используя JQuery, например, $ (". SomeClass") - PullRequest
2 голосов
/ 16 апреля 2009

У меня есть коллекция элементов на моей странице, и я хочу посмотреть, являются ли они видимыми или нет.

Итак:

$(".someClass")

Как я могу пройтись и выяснить это? потому что, если он виден, мне нужно запустить другую функцию.

Ответы [ 4 ]

9 голосов
/ 16 апреля 2009
$(".someClass").each(function(){
  if($(this).is(":visible")){
    //item is visible: do something
   }
});

как насчет этого?

2 голосов
/ 16 апреля 2009
$(".someClass:visible")

вернет видимые.

1 голос
/ 28 июля 2009

Все решения с точки зрения $('.someClass').is(':visible') ненадежны. Все, что он говорит нам, это если у определенного элемента есть стиль display:none или visibility:hidden. Это не так же, как то, видим ли элемент!

Рассмотрим ситуацию, подобную этой:

<div style="display:none;"><div class="someClass"></div></div>

Каждый может видеть, что элемент, обозначенный $('.someClass'), невидим. Но $('.someClass').is(':visible') вернет true!

Единственным водонепроницаемым решением является проверка не только is(':visible') на $('.someClass'), но и на всех его родительских элементах. Только если для ни один из родителей не считает, что is(':visible') === false, мы можем заключить, что $('.someClass') действительно видим.

1 голос
/ 16 апреля 2009

Что вы могли бы сделать:

$(".someClass").each(function(x) { if ( x.style.display != "none" && x.style.visibility != "hidden" ) { your_function(); } });

где your_function() - название вашей функции.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...