JavaScript Event学习第九章:鼠标事件
2010-03-30 00:00:00 来源:WEB开发网总之,当用户在一个元素上双击的时候click事件总是发生在dblclick之前。另外,在Netscape中,第二个click总是会在dblclick之前被分开处理。不管怎样,警示框在这是很危险的。
所以保证你的click和dblclick很好的分离能避免很多复杂的事情。
Mousemove
mousemove事件运行的很好,但是需要注意的是那可能需要很多的系统资源来处理所有的mousemove事件。当用户把鼠标移动一个像素,mousemove就触发一次。就算什么都没发生,长而复杂的函数也要耗费很长的时间会影响网站的效率:所有的事情都会变慢,尤其在那些老古董上。
所以最好的办法就是当你需要的时候注册onmousemove事件,在不用的时候尽快移除:
1 element.onmousemove = doSomething;
2 // later
3 element.onmousemove = null;
Mouseover和mouseout
再看看这个例子,换成mouserover然后试试。这个例子只是在ev3上添加了onmouseover的事件处理程序。然而你会注意到不仅仅在ev3上会触发事件在ev4或者span上都会触发。在Mozilla 1.3之前,当鼠标进入一个文本区域的时候都会触发。
原因当然就是事件冒泡。用户在ev4上触发了mouseover事件。在这个元素上没有onmouseover事件处理程序,但是在ev3上有。所以当事件冒泡到ev3上的时候,程序就执行了。
现在这样的设置虽然都完全正确,但是还有一个问题。首要问题就是目标。假设鼠标进入了ev4:
-----------------------------------------
| This is div id="ev3" |
| ----------------------------- |
| | This is div id="ev4" | |
| | -------- <-------- |
| | | span | | |
| | | | | |
| | -------- | |
| ----------------------------- |
-----------------------------------------
<--------: mouse movement
编缉推荐阅读以下文章
- JavaScript Event学习补遗:addEventSimple
- JavaScript Event学习第十一章:按键的检测
- JavaScript Event学习第十章:一些可替换的事件对
- JavaScript Event学习第八章:事件的顺序
- JavaScript Event学习第七章:事件属性
- JavaScript Event学习第六章:事件的访问
- JavaScript Event学习第五章:高级事件注册模型
- JavaScript Event学习第四章:传统的事件注册模型
- JavaScript Event学习第三章:早期的事件处理程序
- JavaScript Event学习第二章:Event
Tags:JavaScript Event 学习
编辑录入:爽爽 [复制链接] [打 印]更多精彩
赞助商链接