Yanıtlar:
Mouseleave olayı, olay köpürmesini işleme biçiminde mouseout'tan farklıdır. Bu örnekte mouseout kullanılmışsa, fare işaretçisi İç öğeden dışarı çıktığında, işleyici tetiklenir. Bu genellikle istenmeyen bir davranıştır. Öte yandan mouseleave olayı, işleyicisini yalnızca fare bağlı olduğu öğeyi terk ettiğinde tetikler, altından değil. Dolayısıyla bu örnekte, işleyici, fare Dış öğeden ayrıldığında ancak İç öğeden ayrılmadığında tetiklenir.
Bundan mouseout
daha iyi bir seçim olduğu zamanlar olabilir mouseleave
.
Örneğin, üzerinde bir öğenin yanında görüntülenmesini istediğiniz bir araç ipucu oluşturduğunuzu varsayalım mouseenter
. setTimeout
Araç ipucunun anında açılmasını önlemek için kullanırsınız . mouseleave
Kullanırken zaman aşımını temizlersiniz, clearTimeout
böylece fare ayrılırsa araç ipucu görüntülenmez. Bu, zamanın% 99'unda çalışacaktır.
Ama şimdi, iliştirilmiş bir araç ipucunuz olan öğenin bir click
olay içeren bir düğme olduğunu varsayalım ve bu düğmenin kullanıcıya bir confirm
veya alert
kutuyla sorulduğunu da varsayalım . Kullanıcı düğmeye tıklar ve alert
ateşler. Kullanıcı, ipucunuzun açılma şansı olmayacak kadar hızlı bastı (şimdiye kadar çok iyi).
Kullanıcı alert
kutu OK düğmesine basar ve fare öğeden ayrılır. Ancak tarayıcı sayfası artık kilitli durumda olduğundan, Tamam düğmesine basılıncaya kadar hiçbir javascript tetiklenmeyecektir, yani mouseleave
etkinliğiniz YANGIN OLMAYACAKTIR . Kullanıcı Tamam'a bastıktan sonra, araç ipucu açılır (istediğiniz gibi değildir).
mouseout
Bu durumda kullanmak ateşleneceği için uygun çözüm olacaktır.
mouseout
Bu durumda neden ateş açacağını açıklayabilir misin ? Tarayıcı hala kilitli durumda olmaz mouseout
mıydı?
jQuery API belgesi:
mouseout
Bu olay türü, köpürme olayından dolayı birçok baş ağrısına neden olabilir. Örneğin, bu örnekte fare işaretçisi İç öğenin dışına çıktığında, buna bir mouseout olayı gönderilecek ve ardından Dışa doğru damlayacaktır. Bu, bağlı fare işleyicisini uygun olmayan zamanlarda tetikleyebilir. Yararlı bir alternatif için .mouseleave () tartışmasına bakın.
Yani mouseleave
çünkü yukarıdaki nedenle tasarlanan özel bir olaydır.
Olay Fare Çıkışı, fare seçili öğeden ayrıldığında ve ayrıca fare alt öğelerini de terk ettiğinde tetiklenir.
Etkinlik Mouseleave öğesi, işaretçi yalnızca seçili öğeyi terk ettiğinde tetiklenir.
Referans: W3School