Morfeey
@Morfeey

Как поймать таргет дочернего элемента с таким же событием?

В общем есть у меня функция, которая при наведении на определенный тип элементов делает определенное действие.
Проблема в том, что дочерний элемент который имеет такой же тип (что бы сработала функция) игнорируется.
Возможно ли сделать какие либо различия между ними ? Например сделать жесткую политику наведения, именно этот блок, дочерний нельзя либо что-то в этом духе.

А теперь по человечески)):
функция:
function title(el) {
    el_tooltip = "#tooltip";
    $(document).on("mousemove", el, function (e) {
        
        var
                X = e.pageX,
                Y = e.pageY,
                top = Y + 10 + 'px',
                left = X + 10 + 'px',
                all = $(window).width(),
                w_left = $(this).offset().left,
                width = $(el_tooltip).outerWidth(true),
                offset = all - (w_left + width);

        title = $(this).attr("data-title");
        if ($(this).hasAttr("data-title-html")) {
            var body = $(this).attr("data-title-html");
            $(el_tooltip).find("#tooltip-body").html(body).show();
        } else {
            $(el_tooltip).find("#tooltip-body").html("").hide();
        }

        if (offset < 0) {
            left = left + offset;
        }

        $(el_tooltip).find("#tooltip-title").text(title);
        $(el_tooltip)
                .css({"top": top, "left": left})
                .fadeIn(100);

    });
    $(document).on("mouseleave", el, function () {
        $(el_tooltip).fadeOut(100);
    });
}

Вот элементы, родительский (иконка рубашки) и дочерние (иконки камней) у которых тот же самый тип, что бы работала функция.
eaea5f85fc6348efa49f9b267164b84d.PNG

Нужно попытаться сделать так, что бы при наведении и на тех и на тех срабатывала функция. Сейчас же она работает только для "рубашки".
  • Вопрос задан
  • 207 просмотров
Решения вопроса 1
KorniloFF
@KorniloFF Куратор тега JavaScript
Работаю по font-end / JS
Формулировка вопроса - застрелиться... Фрагмент кода мог бы помочь.
Если правильно понял фразу
Например сделать жесткую политику наведения, именно этот блок, дочерний нельзя либо что-то в этом духе

То как-то так:
<div id="field" >
	<div class=parent style="width:100px; height:100px; background:#def;">
		<div class=child style="width:50px; height:50px; background:#cde;"></div>
	</div>
</div>

<script>
document.getElementById('field').onmouseover= function(e) {
	var t= e.target;
	if(t.className === "parent") console.log("t.className= ", t.className);
	e.stopPropagation();
};
</script>
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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