本文實(shí)例分析了jQuery中hover與mouseover和mouseout的區(qū)別。分享給大家供大家參考,具體如下:
以前一直以為在jquery中其實(shí)mouseover和mouseout兩個(gè)事件等于hover事件。兩個(gè)沒什么區(qū)別,應(yīng)該是一樣的。但昨天一個(gè)動畫效果才讓我見識了,這兩個(gè)并不能等同。
<div class="wrapper"><div class="img"></div><div class="text"></div></div><div class="point"></div>
在wrapper上加事件,當(dāng)鼠標(biāo)移動到wrapper上的時(shí)候讓class="point"的層放大。但如果用mouseover和mouseout事件的話,當(dāng)鼠標(biāo)移動到wrapper層后,point層會變大,但當(dāng)鼠標(biāo)在img和text層之間進(jìn)行移動的時(shí)候,point層會變大變小,不停的變化。這并不是我們想要的結(jié)果,我們想要的是只要鼠標(biāo)在wrapper層上,無論是img還是text上,point就變大,但在鼠標(biāo)未移出wrapper層的情況下,point層不變小。
慢慢思路也清晰了,我們不用mouseover和mouseout而用hover問題就解決了。
這么簡單的問題我們竟然花了好長時(shí)間才解決,真是夸張。寫篇以作紀(jì)念。
補(bǔ)充:后來我?guī)煾刚f其實(shí)在jquery源碼中有這么一段:
hover: function( fnOver, fnOut ) { return this.mouseenter( fnOver ).mouseleave( fnOut || fnOver );} 也就是說hover!=mouseover+mouseout。但hover=mouseenter+mouseleave。
希望本文所述對大家jQuery程序設(shè)計(jì)有所幫助。















