jQuery中hover與mouseover與mouseenter的區別
以前一直以為在jquery中其實mouseover和mouseout兩個事件等於hover事件。但這兩個並不能等同。
<div class="wrapper">
< div class="img"></div>
< div class="text"></div>
< /div>
< div class="point"></div>
在wrapper上加事件,當滑鼠移動到wrapper上的時候讓class="point"的層放大。但如果用mouseover和 mouseout事件的話,當滑鼠移動到wrapper層後,point層會變大,
但當滑鼠在img和text層之間進行移動的時候,point層會變大變小,不停的變化。這並不是我們想要的結果,我們想要的是隻要滑鼠在wrapper層上,
無論是img還是text上,point就變大,但在滑鼠未移出 wrapper層的情況下,point層不變小。
慢慢思路也清晰了,我們不用mouseover和mouseout而用hover問題就解決了。
這麼簡單的問題我們竟然花了好長時間才解決,真是誇張。寫篇日誌以作紀念。
補充:jquery原始碼中有這麼一段:
hover: function( fnOver, fnOut ) {
return this.mouseenter( fnOver ).mouseleave( fnOut || fnOver );
}
也就是說hover!= mouseover+mouseout。但hover=mouseenter + mouseleave
這2個是有區別的。 hover是指分別當滑鼠指標進入和離開元素時被執行的事件相當於mouseenter+mouseleave。而mouseover滑鼠進入某個元素或其子元素時觸發。 可參考mouseover和mouseenter的區別:http://www.w3school.com.cn/tiy/t.asp?f=jquery_event_mouseenter_mouseovermouseover事件與mouseenter事件的區別
不論滑鼠指標穿過被選元素或其子元素,都會觸發 mouseover 事件。對應mouseout
只有在滑鼠指標穿過被選元素時,才會觸發 mouseenter 事件。對應mouseleave
這樣的話,mouseenter子元素不會反覆觸發事件,否則在IE中經常有閃爍情況發生。
相關文章
- mouseenter與mouseover區別
- 區別mouseover與mouseenter?
- 【JavaScript】offset、client、scroll、mouseover和mouseenter區別JavaScriptclient
- jQuery中empty與html("")的區別對比jQueryHTML
- a :hover 和a:hover 區別
- 淺談mouseenter和mouseover,mouseout和mouseleave
- jQuery中onload與ready區別jQuery
- $(function(){})與(function($){....})(jQuery)的區別FunctionjQuery
- 在JavaScript中,DOM物件與jQuery物件的區別與轉換JavaScript物件jQuery
- jquery中append()方法與after()方法的區別jQueryAPP
- jQuery基礎與js的區別jQueryJS
- jQuery mouseover事件jQuery事件
- jQuery mouseenter事件jQuery事件
- jQuery與JavaScript與ajax三者的區別與聯絡jQueryJavaScript
- Javascript中“==”與“===”的區別JavaScript
- js中“==”與"==="的區別JS
- jQuery中多個元素的Hover事件jQuery事件
- Java中(==)與equals的區別Java
- numpy中dot與*的區別
- Python中 ‘==‘ 與‘is‘的區別Python
- 原聲ajax與jquery ajax請求的區別jQuery
- Java中類與物件的關係與區別Java物件
- jQuery hover事件jQuery事件
- js中!和!!的區別與用法JS
- js中 let 與 var 的區別JS
- HTTP中GET與POST的區別HTTP
- ruby中的\z與\Z區別
- 陣列中&a與&a[0]的區別陣列
- MySQL語法中=與:=的區別MySql
- CSS中PX與EM的區別CSS
- perl中my與local的區別
- HTML中ID與NAME的區別HTML
- vue中sass與SCSS的區別VueCSS
- &與&&, |與||區別
- ??與?:的區別
- Node中Exports與module.export的使用與區別Export
- Java中replace與replaceAll區別Java
- SQL join中on與where區別SQL