jQuery не отлавливает клик по абсолютно спозиционированному элементу

269
22 июля 2017, 08:42

Привет. Есть следующая структура:

<div class="parent">
    <div class="child">
    </div>
</div>

Элемент с классом .parent спозиционирован абсолютно. А элемент с классом .child спозиционирован относительно. Я повесил событие click на $('window') и проверяю, что есть целью(e.target). Так вот, когда я кликаю по родительскому элементу, то в консоль выводится, что я кликнул по дочернему элементу .child. Почему так происходит?

Answer 1

Попробуйте место e.target , вывести this , или e.currentTarget !

Answer 2

в кого кликаешь - тот и таргет.

$(window).click(e=> console.log(e.target));
.parent{ 
  position: absolute; 
  background: green; 
  width: 100px; 
  height:100px; 
} 
.child{ 
  background: blue; 
  margin-left: 50px; 
  width: 100px; 
  height:100px; 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
<div class="parent"> 
        <div class="child"> 
        </div> 
    </div>

Answer 3

А вот ответ на сам вопрос, содержащийся в теле: почему так происходит?

Называется весь этот беспредел - event bubblingи event capturing, почитай Статью

Answer 4

Скорее всего дело во всплытии. Используйте event.stopImmediatePropagation();

$('window').on('click', function(event){
    event.stopImmediatePropagation();
    console.log(event.target);
});
READ ALSO
Счетчик исключений из беседы ВК

Счетчик исключений из беседы ВК

Как реализовать счетчик киков из определенной беседы?

221
Частичная выборка и сущности?

Частичная выборка и сущности?

Частичная выборка и сущности? Все примеры, что есть по DDD, конечно классные и все такое, но когда дело доходит до разработки появляются вопросы

178
Выдает ошибку Undefined variable: users

Выдает ошибку Undefined variable: users

Здравствуйте, уже 2 день мучаюсь но всю зряВот код код ошибки

269
Поиск хэштегов в строке

Поиск хэштегов в строке

Друзья, я не специалист в выражениях, поэтому прошу помощиСоставил следующее выражение для поиска хэштегов из строки #\w+

299