Слишком много вызовов функций при наведении мыши

0

У меня небольшая проблема с моим простым кодом js. По неизвестной мне причине он вызывает функцию много раз. В идеальном случае, если пылесос с моей мышью над div, он должен вызывать функцию 1 раз. Вместо этого, если вызовы функционируют каждый раз, когда я нажимаю на что-то в своем div. Вот мой код:

<div class="col-md-4" data-lat="50.12" data-lng="19.10" data-name="pierwszy element" id="oferty">
     <h2>Get more libraries</h2>
     <p>NuGet is a free Visual Studio extension that makes it easy to add, remove, and update libraries and tools in Visual Studio projects.</p>
     <p><a class="btn btn-default" href="http://go.microsoft.com/fwlink/?LinkId=301866">Learn more &raquo;</a></p>
</div>

Вот мой код Js:

$("#oferty.col-md-4")
     .mouseover(function () {
        //$(this).css("backgroundColor", "yellow");
        modifyPoint($(this).attr("data-name"))      
 });

Я полагаю, что с моими селекторами что-то не так. Может ли кто-нибудь сказать мне, как изменить его?

  • 0
    mouseover является триггером, даже когда дочерний элемент «зависает», вместо этого используйте mouseenter :p . Обходным решением будет использование флага, который будет установлен в значение true, при первом наведении курсора, а затем установка его в значение false при наведении мыши.
Теги:

2 ответа

5
Лучший ответ

Вам нужно использовать mouseenter, mouseover от дочерних элементов будет распространяться на родительский элемент

$("#oferty.col-md-4").mouseenter(function () {
    //$(this).css("backgroundColor", "yellow");
    modifyPoint($(this).attr("data-name"))
})

MDN: mouseenter

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

  • 0
    событие mouseenter не распространяется?
  • 0
    @ downvoter я что-то пропустил
Показать ещё 2 комментария
0

То, что вы ищете, это "mouseenter", а не "mouseover" ;-)

Ещё вопросы

Сообщество Overcoder
Наверх
Меню