2011-01-26 22 views
10

Bu çok garip bir şey, daha önce hiç fark etmedim. Böyle çalışır, eğer fareniz hala ve bir fare programlı olarak farenizin altında hareket ederse, bir mouseover olayı krom/safari içinde tetiklenmez - aynı mouseout için de geçerlidir. Tabii ki, eğer fareniz farenin altına hareket ederse biraz farenizi hareket ettirirseniz, beklendiği gibi çalışacaktır. Bir demo on jsFiddle. Sadece farenin altında salınan div, krom veya safari değil, firefox içinde iyi çalışır - henüz test etmemelisiniz.MouseOver MouseOut sorunu Safari/Chrome'da

Temelde kendi mouseenter haddeleme ve kullanma olayları mouseLeave ... bu çözümün doğru eğilim bu:

if (mouseX > divLeft && mouseX < divRight && 
    mouseY > divTop && mouseY < divBottom){ 
    // mouse is inside div 
} 

ı MouseEnter demek ve bu yöntem hiçbir baloncuklanmasını

olurdu çünkü bırakın Başka birinin bunun hakkında düşünceleri olup olmadığını merak ediyordum ... Etrafında kolay bir yol olduğunu hissettim, ancak şu ana kadar Google hiçbir şeyi açmadı.

+1

Sadece kontrol - IE 7, fare hala kullanıldığında "mouseover" veya "mouseout" tetiklemiyor. – jball

+0

+ 1, oldukça ilginç. Etkinliği, fare hareket ederken farenin konumunu kontrol ederek javascript ile tetiklemek mümkün olabilir. – JCOC611

+0

cool teşekkürler, – Zevan

cevap

3
+0

çok havalı. Sanırım sadece bir hataydı ... Başka bir çözüm olup olmadığını görmek için biraz bekleyeceğim ama eminim ki bunu doğru cevap olarak işaretleyeceğim. – Zevan

+0

Asıl soruda bahsettiğim teknikten başka bir yol yok gibi görünüyor - Ben sadece bunu kullandım ve ihtiyacım olan şey için iyi çalışıyor. – Zevan