@Paul_Morte

Как пробросить клик через элемент в javascript?

На странице есть элемент div 1. Внутри него с абсолютным позиционированием расположены элементы div 2.

Как сделать так, чтобы можно было отключить событие mousedown по элементу div 2 , т.е. сделать его "прозрачным для mousedown", но оставить на нем такие события, как mouseenter - событие наведения мышки на элемент.

pointer-events:none - отменяет любые события мышки
Проверять координаты и т.п. решения - не подходят

5f0fba2d86ff2661560892.jpeg
  • Вопрос задан
  • 2324 просмотра
Решения вопроса 2
wapster92
@wapster92 Куратор тега JavaScript

Как сделать так, чтобы можно было отключить событие mousedown по элементу div 2 , т.е. сделать его "прозрачным для mousedown"
так прозрачным или все же, что бы событие не происходило?
Ответ написан
@Paul_Morte Автор вопроса
Решение как перебросить mousedown ( или click ) через наложенный сверху слой
<div class="container">
  <div class="div2" style='position:absolute'></div>
  <div class="div1"></div>
</div>

.div2 - полностью нахожен на .div1 и засасывает все события на себя.
Делаем проброс:
$('.div2').mousedown(function(e){
  evt = e || window.event;
  $(this).hide(0);  // при нажатии на .div2 скрываем его
  starter = document.elementFromPoint(evt.clientX, evt.clientY); // получаем элемент снизу - .div1
  $(starter).mousedown();  // эмулируем нажатие на кнопку мыши
  $(this).show(0); // показываем .div2
});
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
Dimski
@Dimski
Программирование - мое хобби
Не дам готовый ответ так как лень печатать с телефона. Изучи тему всплытия/погружения в событиях дом. Если div1 есть родителем для div2 можешь воспользоваться closest. Далее Гугл в помощь...
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы