У меня небольшая проблема с моим простым кодом 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 »</a></p>
</div>
Вот мой код Js:
$("#oferty.col-md-4")
.mouseover(function () {
//$(this).css("backgroundColor", "yellow");
modifyPoint($(this).attr("data-name"))
});
Я полагаю, что с моими селекторами что-то не так. Может ли кто-нибудь сказать мне, как изменить его?
Вам нужно использовать mouseenter, mouseover от дочерних элементов будет распространяться на родительский элемент
$("#oferty.col-md-4").mouseenter(function () {
//$(this).css("backgroundColor", "yellow");
modifyPoint($(this).attr("data-name"))
})
Подобно mouseover, он отличается тем, что он не пузырится и что он не отправляется, когда указатель перемещается из физического пространства своего потомка в свое физическое пространство.
mouseenter
не распространяется?
То, что вы ищете, это "mouseenter", а не "mouseover" ;-)
:p
. Обходным решением будет использование флага, который будет установлен в значение true, при первом наведении курсора, а затем установка его в значение false при наведении мыши.