Aşağıdaki senaryoda mouseover ve mouseout'u her zaman iki kez ateşliyorum! Neyi yanlış yaptığımı mı söylüyorsunuz (yok ol, geri dön, ör.)? Birkaç şey denedim ama hiçbir şey yardımcı oldu.jquery delegate() olayları (mouseover mouseout) iki kez ateş ediyor
$('#container').delegate('div.showmenu', 'mouseover mouseenter mouseout mouseleave', function(e){
if (e.type === 'mouseover' || e.type==='mouseenter') { //jIE requires mouseenter, does not fire mouseover
if($(this).parents().closest('div').hasClass('whatever')){
alert(e.type); //double-alerts mouseover
menu.show();
foldercmenu.hover(
function(){
$(this).show();
},
function(){
$(this).hide();
}
);
}else {
//do other stuff :-)
}
}else if(e.type==='mouseout' || e.type==='mouseleave'){ //IE requires mouseleave, does not fire mouseout
alert(e.type); //double-alerts mouseout
menu.hide();
$(this).unbind('mouseover mouseenter mouseout mouseleave');
}
//return false;
});
Bu, iyi belgelenmemiş bir olay sorunudur ... Bunu söylediğin için teşekkürler. Bunu bulmak için gerçekten uzun bir zaman aldı. Benim durumumda, önerdiğiniz davranış (çocuk düğümlerine girdiğinizde/çıktığınızda mouseover & mouseout tekrar ateş ediyor) sadece IE'de (10) ortaya çıkıyor - tüm modern tarayıcılar sadece sağlanan eleman için bir olayı ele almakla ilgilendiğimi anlıyor gibi görünüyor. ve tüm çocukları için değil. StopPropagation/stopImmediatePropagation bile bunu benim için etkilemedi. – 1nfiniti