Skonfigurowałem prosty dymek jQueryfunkcja, ale chodzi o to, gdy umieścisz kursor nad elementem wyzwalającym, działa, ale jeśli przesuniesz mysz nad docelowy element div, pozostając na przełączniku wyzwalacza (nakładania), migocze !? Jakieś pomysły?
Mam ten kod jQuery:
$("#tag").hover(
function () {
$("#homeHover").show();
},
function () {
$("#homeHover").hide();
}
);
Dzięki tej strukturze HTML:
<div id="homeHover"></div>
<div id="tag">
</div>
I ten CSS:
#homeHover {
width: 150px;
height: 150px;
position: absolute;
background: url("../img/arrow.png") no-repeat scroll 0 0 transparent;
top: 145px;
left: 0px;
display: none;
}
#tag {
float: left;
}
Odpowiedzi:
2 dla odpowiedzi № 1Możesz wyzwolić zdarzenie mouseenter i mouseleave dla elementu wyzwalającego div, gdy przesuniesz nad docelowym elementem div. To zatrzyma migotanie.
$("#homeHover").on({
mouseenter: function(){
// Trigger #tag hover to stop flickering
$("#tag").mouseenter();
}
mouseleave: function(){
// Trigger #tag mouseleave
$("#tag").mouseleave();
}
});
0 dla odpowiedzi nr 2
$(document).mouseover(function(e) {
if (e.target == $("#homeHover").get(0) || e.target == $("#tag").get(0)) {
$("#homeHover").show();
}
else {
$("#homeHover").hide();
}
});