Почему перехватываются события другого объекта?

Перехватывая события одного объекта, получая данные дочернего.
Посмотреть.

Суть такова, что я хочу получать XY положения курсора и на основе этих данных гонять кружок под стрелкой. Но в итоге получается, что поступают данные не блока, от которого ловлю события, в самого кружка в этом блоке. Из-за этого круг прыгает туда сюда.
  • Вопрос задан
  • 2216 просмотров
Решения вопроса 2
@Dialog
Виновато всплывание событий.

Решение для текущей верстки:
$(".block").mousemove(function (event) {
    if (event.target == this) {
        $("#X").text(event.offsetX);
        $("#Y").text(event.offsetY);
        
        var effect = $(this).find(".effect");
        effect.css({"left" : event.offsetX - 15 + "px", "top" : event.offsetY - 15 + "px"});
    }
});
Ответ написан
stcherenkov
@stcherenkov
front-end engineer
Можно отключить у "эффекта" события мыши через CSS:

.effect {
    pointer-events: none;
}
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@versoul
сходу влоб можно проверять тот ли это элемент
if(event.target.className === 'block'){

jsfiddle.net/8je0escx
и плз вынесите поиск элемента за обработчик, зачем его каждый раз искать то =((
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы