Перевірте елемент, який з’являється лише тоді, коли інший елемент переоцінений / введений мишею


119

Часто я хочу перевірити елемент (наприклад, підказку), який з’являється лише тоді, коли інший елемент переоцінений / введений мишею. Елемент, що з'являється, стає видимим через подія мишіцентру jQuery.

Я не можу перевірити підказку, оскільки підказка зникає, коли моя миша залишає елемент, що містить.

Чи є спосіб призупинити події JS, щоб я міг навести курсор на елемент, а потім призупинити JS браузера та успішно перевірити його?

Наприклад, спробуйте ознайомитись із підказками завантажувального інструмента для завантаження Twitter: http://getbootstrap.com/javascript/#tooltips .


9
Просто FYI, якщо елемент з'являється через CSS замість JS, ви можете накласти його :hoverна нього, клацнувши правою кнопкою миші на елементі у вікні Elements (DOM) у Dev Tools, виберіть "Force Element State", а потім ": hover".
— МММ

Відповіді:


226

У Chrome 38.0.2094.0 це досить просто.

Ось як це буде виглядати:

Крок за кроком:

  1. Відкрийте DevTools на панелі "Джерела"
  2. Переконайтеся, що підказка з’являється, наведення курсор на кнопку
  3. Натисніть F8, щоб заморозити сторінку
  4. Перейдіть на панель «Елементи» та використовуйте піктограму лупи у верхньому лівому куті для вибору підказки

Якщо підказка з’являється через CSS, ось що ви можете зробити в цьому випадку:

Крок за кроком:

  1. Відкрийте DevTools
  2. Виберіть запускаючий елемент у інструментах розробки (посилання)
  3. Клацніть правою кнопкою миші та виберіть "стан елемента елемента" та виберіть ": навести курсор"
  4. Перевірте підказку CSS

1
@YuriyGalanter Доступний через піктограму шпигуна у верхньому лівому куті. Просто натисніть на піктограму, потім натисніть на підказку :)
— Šime Vidas

3
Так, я додав GIF, щоб легше було бачити, що я роблю.
— Якийсь Гай

2
@DonnyP я використав byzanz-record. Це пакет, який ви можете отримати sudo apt-get install byzanz.
— Якийсь Гай

5
Також є LICEcap , він записує частину екрану безпосередньо в супер-оптимізованому GIF. Windows, OS X та Linux.
— fregante

2
@ bfred.it LICEcap не доступний для Linux. Дивіться цей випуск Github по цій темі. Здається, люди мають успіх, запускаючи його з WINE .
— Ісаак Грегсон

15

Обидва Сафарі і Web Inspector пропозиції прапорців Chrome, де ви можете перемикати :active, :focus, :hoverі :visitedстан елемента. Використовувати їх може бути ще простіше.

Сафарі:

Поставити прапорці в Safari

Chrome:

Прапорці в Chrome


5
Підказка не викликається :hoverстилями.
— Šime Vidas

2
Firebug у Firefox має те саме (мінус :visited, який обмежений для запобігання переносу) - на вкладці HTML він знаходиться в спадному меню "Стиль" праворуч
— Izkata

1
@Izkata Для початкових інструментів розробника Firefox клацніть правою кнопкою миші елемент у паніровці або дереві HTML / DOM та виберіть із :hover, :activeабо :focus.
— Кіран Ціна

4

Існує ще один складний спосіб зробити це:

  1. Перейдіть елемент, завдяки якому з’явиться підказка.
  2. Клацніть правою кнопкою миші, щоб відкрити контекстне меню.
  3. Перемістіть курсор миші до вікна інструменту розробки та клацніть лівою кнопкою миші будь-де на панелі інструментів програми.

Підказка залишиться видимою, ви зможете ознайомитись з нею на вкладці «Елемент».

Тестовано на Chrome. Схоже, це не працює на Firefox.


1
Ось як я це робив у минулому, але відповідь @ SomeGuy - найкращий і найпростіший спосіб.
— Джон Вашам

@JohnDubya Ні, це насправді немає. Це може бути офіційним шляхом, але це, звичайно, не простіше. Занадто багато кроків задіяно.
— MiniRagnarok

Це те, що я зазвичай роблю, але це не завжди працює.
— Synetech

3

Хоча відповідь @ SomeGuy відмінна (t-up для анімованих gif-файлів), як альтернатива, ви завжди можете це зробити програмно. Просто відкрийте консоль і введіть назву події

document.getElementById('id').dispatchEvent(new Event('event-type'));

(синтаксис чистого JavaScript може відрізнятися залежно від браузера)

Ще простіше з jQuery:

$('#id').trigger('event-type');

У своєму прикладі ( http://getbootstrap.com/javascript/#tooltips ) відкрийте консоль і введіть, наприклад:

$("button:contains('Tooltip on right')").mouseenter();

І підказка з’являється у DOM та її можна вручну перевірити / змінити:

<div style="top: 14406.9px; left: 1048.25px; display: block;"
id="tooltip952596" class="tooltip fade right in" role="tooltip">
<div style="" class="tooltip-arrow"></div>
<div class="tooltip-inner">Tooltip on right</div></div>

Як і в коментарях, якщо перемістити вказівник миші на кадр сторінки, ви можете викликати інші події, такі як mouseout. Щоб запобігти цьому, можна натиснути F8(як у відповідній відповіді) або набрати debugger;(що є його еквівалентом сценарію)


1
Перевіряючи елемент, ви все ще можете викликати інші події (наприклад, mouseout ), тому це не вирішує проблему. Вибираючи його, ви повинні бути дуже обережними. Але це альтернативний підхід.
— МММ
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.