Я пытаюсь создать своего рода инспектор элементов (например, в Chrome/FF).Как создать обработчик события click внутри обработчика события mouseover?
Flow выглядит следующим образом:
- Вы нажмите кнопку 'Пуск проверки' кнопку.
- Вы наводите курсор на необходимый элемент.
- Вы нажимаете на этот элемент.
- Вы должны увидеть этот элемент в консоли.
Вот код:
startInspecting = function(){
$('section *').on('mouseover.INSPECTOR', function(e){
$('.hovered-element').removeClass('hovered-element');
$(e.target).addClass('hovered-element');
$(this).on('click.INSPECTOR', function(e){
$('section *').off('mouseover.INSPECTOR');
$('section *').off('click.INSPECTOR');
$('.hovered-element').removeClass("hovered-element");
console.log(e.target);
});
});
};
Проблема заключается в: каждый раз, когда я наведите курсор мыши на какой-то элемент - нажмите обработчик событий прилагается к нему. Итак, , если я навещу над p
элемент 5 раз, а затем щелкните по нему - я увижу 5 console.log
s вместо 1.
Я пытался реализовать его с помощью mouseenter/mouseleave
, но встал вопрос, что каждый элемент может быть колебался только один раз - another JSFiddle example
Так как не могу улучшить свой код, независимо от того, сколько раз я парить над элементом , у него будет только один обработчик кликов?
Заранее благодарю за любую помощь!
Переместите обработчик 'click' вне функции' hover' –