博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

mootools【六】- Event篇

Posted on 2008-05-04 13:56  linFen  阅读(271)  评论(0编辑  收藏  举报

mootools中定义了一个Event类,它提供了对原始window的事件对象event的扩展,使用的时候,可以 把原来的event对象作为Event的构造方法参数传入:

var event = new Event(event);

这样,返回的event就包含了所有mootools经过扩展的功能,具体扩展的属性和方法如下:

================================================================

属性:

 shift - 当触发的事件是键盘按键事件时,判断按下的按键是否是shift键

$('myLink').onkeydown = function(event){
     var event = new Event(event);        //扩展了的event  
     alert(event.shift);                              //如果按下的按键是shift,则alert结果为true

 };

[control,alt,meta用法和shift相同。]

 

code - 当触发的事件是键盘按键事件时,按下键的keycode

 

page.x - 鼠标事件触发时,鼠标相对于整个窗体的x

page.y - 鼠标事件触发时,鼠标相对于整个窗体的y

client.x - 鼠标事件触发时,鼠标相对于当前视野的y

client.y - 鼠标事件触发时,鼠标相对于当前视野的y

(一般情况下,client.x,client.y效果和page.y,page.y一样;但当窗体出现滚动条的时候,两者效果就有差别了。)

 $('myInput').addEvent('click',function(event){
      var event = new Event(event);
      alert(event.page.y + "||" + event.client.y);
 });


 key - 当触发的事件是键盘按键事件时,按下按键的名字,如:"enter","esc"等等。

 

target - 发生事件的元素。

relatedTarget - 发生mouseover和mouseout事件时的元素对象的参照对象。

 

================================================================

方法:stop

作用:停止事件的执行

 

方法:stopPropagation

作用:停止事件的冒泡传递

 

方法:preventDefault

作用:停止事件的默认动作

 

由于Event的引进,mootools又给Function扩展了一个方法:

bindWithEvent

它和Function的bindAsEventListener方法用法基本相同,不一样的是,bindAsEventListener方法传递到事件监听器中的是原来的event对象,而bindWithEvent则是Event的实例对象。