Javascript - як перевірити, прихований елемент в jquery dom, code q - a український (ru)

Жоден з цих відповідей не впливає на те, що я розумію, це питання, яке я шукав: «Як обробляти елементи з visibility: hidden?». Ні: visible ні: hidden будуть обробляти це, оскільки вони обидва шукають відображення в документації. Наскільки я можу судити, немає селектора для управління видимістю CSS. Ось як я його дозволив (стандартні селектора jQuery, може бути більш стислий синтаксис):

Ви можете визначити, згенерований елемент чи ні, за допомогою: visible і: hidden селектор.

Якщо ви просто впливаєте на елемент, заснований на його видимості, ви можете просто включити: visible або: hidden в вираженні селектора. наприклад:

Часто, перевіряючи, щось мабуть чи ні, ви негайно підете прямо вперед і зробите щось ще з ним. Ланцюжок jQuery робить це легко.

Тому, якщо у вас є селектор, і ви хочете виконати будь-яку дію на ньому, тільки якщо воно мабуть або приховано, ви можете використовувати filter ( ": visible") або filter ( ": hidden") а потім прив'язати його до дії , яке ви хочете брати.

Тому замість затвердження if. наприклад:

Або більш ефективний, але навіть більш потворний:

Ви можете зробити все це в одному рядку:

Селектор: visible відповідно до документації jQuery.

  • У них немає значення display в CSS.
  • Вони являють собою елементи форми з type = "hidden".
  • Їх ширина і висота явно встановлені в 0.
  • Елемент предка прихований, тому пункт не відображається на сторінці.

Елементи з visibility: hidden або opacity: 0 вважаються видимими, оскільки вони все ще споживають простір в макеті.

Це корисно в деяких випадках і марно для інших, тому що, якщо ви хочете перевірити, чи є елемент видимим (display! = None), ігноруючи видимість батьків, ви виявите, що виконання .css ( "display") == 'none' Не тільки швидше, але і правильно поверне перевірку видимості.

Якщо ви хочете перевірити видимість замість відображення, ви повинні використовувати. css ( "visibility") == "hidden".

Оскільки: visible є розширенням jQuery, а не частиною специфікації CSS, запити з використанням: visible не можуть скористатися підвищенням продуктивності, що надаються вбудованим методом DOM querySelectorAll (). Для досягнення оптимальної роботи при використанні: visible для вибору елементів спочатку виберіть елементи, використовуючи чистий селектор CSS, а потім за допомогою .filter ( ": visible").

Це працює для мене, і я використовую show () і hide () щоб зробити мій div прихованим / видимим:

Елемент може бути прихований з display: none. visibility: hidden або opacity: 0. Різниця між цими методами:

  • display: none приховує елемент, і він не займає місця;
  • visibility: hidden приховує елемент, але як і раніше займає місце в макеті;

opacity: 0 приховує елемент як «видимість: прихований», і він як і раніше займає місце в макеті; Єдина різниця полягає в тому, що непрозорість дозволяє зробити елемент частково прозорим;

Корисні методи перемикання jQuery:

Щоб приховати / показу виклику я викликаю .addClass ( "hide") /. RemoveClass ( "hide"). Для перевірки видимості я використовую .hasClass ( "hide").

Це простий і зрозумілий спосіб перевірити / приховати / показати елементи, якщо ви не плануєте використовувати .toggle () або .animate ().