多多色-多人伦交性欧美在线观看-多人伦精品一区二区三区视频-多色视频-免费黄色视屏网站-免费黄色在线

國(guó)內(nèi)最全I(xiàn)T社區(qū)平臺(tái) 聯(lián)系我們 | 收藏本站
阿里云優(yōu)惠2
您當(dāng)前位置:首頁(yè) > web前端 > jscript > JavaScript Event學(xué)習(xí)第九章:鼠標(biāo)事件

JavaScript Event學(xué)習(xí)第九章:鼠標(biāo)事件

來(lái)源:程序員人生   發(fā)布時(shí)間:2014-01-18 00:54:10 閱讀次數(shù):3328次
鼠標(biāo)事件是到目前為止最重要的事件。在這一章我將介紹一些鼠標(biāo)事件的最常見(jiàn)的問(wèn)題和技巧。

先看看都有哪些鼠標(biāo)事件:mousedown,mouseup_and_click,dblclick,mousemove和mouseover mouseout。然后還會(huì)解釋一下relatedTarget,fromElement和toElement這些事件屬性。最后是微軟的mouseenter和mouseleave事件。

瀏覽器的兼容性問(wèn)題,可以在瀏覽器兼容性列表查看。

例子
這里有一個(gè)例子。可以幫助理解下面的內(nèi)容。
mousedown,mouseup,click和dblclick在這個(gè)鏈接上注冊(cè)。可以再下面的文本框里面查看。或者在對(duì)話框里面。(請(qǐng)?jiān)谠睦飮L試:http://www.quirksmode.org/js/events_mouse.htm)

Mousedown,mouseup,click
如果用戶在一個(gè)元素上點(diǎn)擊,那么最少三個(gè)事件會(huì)被觸發(fā),順序是這樣的:
1、mousedown,當(dāng)用戶在這個(gè)元素上按下鼠標(biāo)鍵的時(shí)候
2、mouseup,當(dāng)用戶在這個(gè)元素上松開(kāi)鼠標(biāo)鍵的時(shí)候
3、click,當(dāng)一個(gè)mousedown和一個(gè)mouseup都在這個(gè)元素上被檢測(cè)到的時(shí)候發(fā)生

通常mousedown和mouseup比click有用。有些瀏覽器不允許你讀取onclick的事件信息。而且有時(shí)候用戶用鼠標(biāo)做出某些動(dòng)作click事件沒(méi)有跟上。

假設(shè)用戶在一個(gè)鏈接上按下了鼠標(biāo)鍵,然后把鼠標(biāo)挪開(kāi)了并且挪開(kāi)后松開(kāi)了鼠標(biāo)鍵。那么這時(shí)候這個(gè)鏈接就僅僅發(fā)生了mousedown事件。類似的,用戶在點(diǎn)擊鼠標(biāo)之后挪到了鏈接上,那么鏈接就僅有mouseup發(fā)生。這兩種情況都沒(méi)有click事件發(fā)生。

這是不是一個(gè)問(wèn)題取決于用戶的行為。但是你應(yīng)該注冊(cè)onmousedown/up事件,除非你就是完全想click發(fā)生。

如果你用了彈出警示框的話,瀏覽器可能會(huì)丟失事件發(fā)生的軌跡和發(fā)生了多少次,會(huì)引起混亂。所以最好別用那個(gè)。

Dblclick
dblclick事件很少用。如果你要用的話一定不要把onclick和dblclick的事件處理程序注冊(cè)在一個(gè)HTML元素上。如果兩個(gè)都注冊(cè)了的話你要知道用戶到底干什么是一件基本上不可能的事情。

總之,當(dāng)用戶在一個(gè)元素上雙擊的時(shí)候click事件總是發(fā)生在dblclick之前。另外,在Netscape中,第二個(gè)click總是會(huì)在dblclick之前被分開(kāi)處理。不管怎樣,警示框在這是很危險(xiǎn)的。

所以保證你的click和dblclick很好的分離能避免很多復(fù)雜的事情。

Mousemove
mousemove事件運(yùn)行的很好,但是需要注意的是那可能需要很多的系統(tǒng)資源來(lái)處理所有的mousemove事件。當(dāng)用戶把鼠標(biāo)移動(dòng)一個(gè)像素,mousemove就觸發(fā)一次。就算什么都沒(méi)發(fā)生,長(zhǎng)而復(fù)雜的函數(shù)也要耗費(fèi)很長(zhǎng)的時(shí)間會(huì)影響網(wǎng)站的效率:所有的事情都會(huì)變慢,尤其在那些老古董上。

所以最好的辦法就是當(dāng)你需要的時(shí)候注冊(cè)onmousemove事件,在不用的時(shí)候盡快移除:

element.onmousemove = doSomething;

2 // later

3 element.onmousemove = null;

Mouseover和mouseout
再看看這個(gè)例子,換成mouserover然后試試。這個(gè)例子只是在ev3上添加了onmouseover的事件處理程序。然而你會(huì)注意到不僅僅在ev3上會(huì)觸發(fā)事件在ev4或者span上都會(huì)觸發(fā)。在Mozilla 1.3之前,當(dāng)鼠標(biāo)進(jìn)入一個(gè)文本區(qū)域的時(shí)候都會(huì)觸發(fā)。

原因當(dāng)然就是事件冒泡。用戶在ev4上觸發(fā)了mouseover事件。在這個(gè)元素上沒(méi)有onmouseover事件處理程序,但是在ev3上有。所以當(dāng)事件冒泡到ev3上的時(shí)候,程序就執(zhí)行了。

現(xiàn)在這樣的設(shè)置雖然都完全正確,但是還有一個(gè)問(wèn)題。首要問(wèn)題就是目標(biāo)。假設(shè)鼠標(biāo)進(jìn)入了ev4:
-----------------------------------------
| This is div id="ev3" |
| ----------------------------- |
| | This is div id="ev4" | |
| | -------- <-------- |
| | | span | | |
| | | | | |
| | -------- | |
| ----------------------------- |
-----------------------------------------

<--------: mouse movement

現(xiàn)在這個(gè)事件的target/srcElement就是ev4:就是事件發(fā)生的元素,因?yàn)槭髽?biāo)移動(dòng)到了他上面。但是當(dāng)下面的發(fā)生時(shí)候:
-----------------------------------------
| This is div id="ev3" |
| ----------------------------- |
| | This is div id="ev4" | |
| | -------- | |
| | | span | | |
| | | --------> | |
| | -------- | |
| ----------------------------- |
-----------------------------------------

-------->: mouse movement

這個(gè)事件的target/srcElement是一樣的。在這一樣還是鼠標(biāo)進(jìn)入ev4。然而你可能會(huì)當(dāng)鼠標(biāo)從ev3來(lái)或者從SPAN來(lái)的時(shí)候做不同的事。所以我們需要知道鼠標(biāo)到底從哪來(lái)的。

relatedTarget,fromElement,toElement
W3C把relatedTarget屬性加進(jìn)了mouseover和mouseout事件中。在mouseover事件下就是包括鼠標(biāo)從哪來(lái),在mouseout下就是包括鼠標(biāo)到哪去。

生活不易,碼農(nóng)辛苦
如果您覺(jué)得本網(wǎng)站對(duì)您的學(xué)習(xí)有所幫助,可以手機(jī)掃描二維碼進(jìn)行捐贈(zèng)
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關(guān)閉
程序員人生
主站蜘蛛池模板: 久久精品免费一区二区三区 | 中文字幕无线码一区二区三区 | 逼逼爱爱视频 | 亚洲 欧美精品 | 老司机精品视频午夜免费视频 | 久草在线综合 | 亚洲国产精品免费观看 | 羞羞视频免费入口网站 | 国产一区二区不卡免费观在线 | 怡春院欧美一区二区三区免费 | 激情综合亚洲欧美日韩 | 成年人免费在线视频观看 | 免费成年人在线观看视频 | 精品伊人久久久 | 美国一级毛片片aa成人 | 久久综合九色综合欧洲色 | 精品国产爱久久 | 国产精品视频白浆免费视频 | 午夜dj高清免费观看视频www | 午夜久久久久久 | 一级做α爱过程免费视频 | 羞羞影院免费观看网址在线 | 91久久人澡人人添人人爽 | 久草免费在线色站 | 一级片大全 | 久久天天躁狠狠躁夜夜爽蜜月 | 欧美日韩一区二区三区视视频 | 一级做a爰片久久毛片图片 一级做a爰片欧美aaaa | 中文一区在线观看 | 亚洲免费视频在线 | 亚洲精品一区二区三区四区五区 | 亚洲曰本大成网站mmm | 五月激情婷婷综合 | 亚洲成av人片在线观看无码 | 最近免费中文字幕大全视频 | 校园春色亚洲欧美 | 在线欧美69v免费观看视频 | 成人在线免费视频 | 欧美午夜精品一区二区三区 | 日韩国产欧美精品综合二区 | 日韩欧美亚洲综合 |