2013-12-19 2 views
0

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

<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 на выводе мыши. – Stphane

ответ

5

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

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

MDN: mouseenter

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

+0

Событие «mouseenter» не распространяется? –

+0

@downvoter я пропустил что-нибудь –

+0

@AmanArora см. Обновление –

Смежные вопросы