У меня есть следующая функция Javascript / jQuery:
function addEventHandler(){
$("div").mouseenter(function() {
$(this).html("Over");
}).mouseleave(function() {
$(this).html("Out");
});
}
Это работает, но не идеально.Дивы иногда слегка перекрываются (не спрашивайте), и, как показано на рисунке ниже, они не всегда получают значение «Out».Это происходит, особенно если я очень быстро наведу указатель на них.
Есть идеи, как сделать так, чтобы каждый div получал значение "Out" при отпускании мыши?Спасибо!
ОБНОВЛЕНИЕ: фрагмент реального кода
Поскольку моя реальная функция не так проста, как в примере выше, я включил точный код реальногофункция здесь:
function addEventHandlers(){
var originalContent = "";
$(".countryspots div").mouseenter(function() {
var thisClass = $(this).attr("class");
var thisCountry = thisClass.split(" ");
var thisNumber = getNumber(thisCountry[1]);
originalContent = $(this).children("a").html();
$(this).children("a").html("<span>" + thisNumber + "</span>");
}).mouseleave(function() {
$(this).children("a").html(originalContent);
});
}
И моя HTML-разметка выглядит следующим образом:
<div class="countryspots">
<div class="america brazil"><a href="#"><span>Brazil</span></a></div>
<div class="america argentina"><a href="#"><span>Argentina</span></a></div>
<div class="europe ireland"><a href="#"><span>Ireland</span></a></div>
<div class="europe portugal"><a href="#"><span>Portugal</span></a></div>
</div>
Общая идея заключается в том, что название страны во внутренней части <span>
заменяется на число, представляющеесотрудников на mouseenter
(получено из getNumber();
), а затем снова поменялись на mouseleave
.
* * * * * * * * реальная проблема состоит в том, что многие дивы сохраняют номер своего сотрудника, когда я перемещаю указатель надругой див.Другими словами: событие mouseleave
не выполняется для всех div.
Пример в реальном времени: http://jsfiddle.net/N9YAu/4/
Надеюсь, это поможет.Еще раз спасибо!