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


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.