mootools的Event類(lèi)很簡(jiǎn)單,方法少,屬性比較齊全:
方法:
stop:停止事件分發(fā)
stopPropagation:停止事件繼續(xù)向上傳播
preventDefault:阻止默認(rèn)行為的處理
bindWithEvent:綁定元素的事件
屬性:
shift |
是否按下了SHIFT鍵 |
control |
是否按下了CTRL鍵 |
alt |
是否按下了ALT鍵 |
meta |
是否按下了META鍵(暈一個(gè),META是什么鍵?) |
code |
按下鍵的編碼keycode |
page.x |
鼠標(biāo)相對(duì)于整個(gè)窗口的 x 偏移位置 |
page.y |
鼠標(biāo)相對(duì)于整個(gè)窗口的 y 偏移位置 |
client.x |
鼠標(biāo)相對(duì)于當(dāng)前視口的 x 偏移位置 |
client.y |
鼠標(biāo)相對(duì)于當(dāng)前視口的 y 偏移位置 |
key |
這個(gè)變量記錄按下的鍵盤(pán)的小寫(xiě)字母,如'a','w',也記錄特殊的按鍵,如‘enter’, ‘up’, ‘down’, ‘left’, ‘ right’, ‘space’, ‘backspace’, ‘delete’, ‘esc’. 這些特殊鍵的描述很方便 |
target |
事件的目標(biāo),如href |
relatedTarget |
事件的關(guān)聯(lián)目標(biāo) |
代碼示例如下:testEvent.html
<head>
<title>測(cè)試Event</title>
<meta http-equiv="content-type" content="text/html; charset=gb2312"/>
<script type="text/javascript" src="./js/mootools.v1.00.js?v=1"></script>
</head>
<body>

<textarea id=content cols=80 rows=20>
</textarea>

<div id=id_div>
<a id=id_a href='http://www.baidu.com' target='_blank'>測(cè)試事件</a>
</div>


<script language="javascript" type="text/javascript">

var flags = 0;


function log(msg)
{
$('content').value += msg + '\n';
}

function clear()
{
$('content').value='';
}

// 綁定div的單擊事件

$('id_div').onclick=function(event)
{
var event = new Event(event);
log('<div>-onclick, target='+event.target);
}


function a_onclick(event)
{
clear();
var event = new Event(event);

if(flags==0)
{
log('這一次屬正常的事件派發(fā),你將看到百度的頁(yè)面會(huì)彈出');
flags++;

}else if(flags==1)
{
log('這一次的事件將終止向上傳播,不派發(fā)給<div>對(duì)象,單<a>對(duì)象的事件將繼續(xù),你應(yīng)該還是可以看到百度頁(yè)面');
flags++;
event.stopPropagation();

}else if (flags==2)
{
log('這一次的事件將不執(zhí)行<a>的默認(rèn)處理,你應(yīng)該沒(méi)有看到百度頁(yè)面的彈出');
flags++;
event.preventDefault();

}else
{
log('這一次的事件就此停止,既不執(zhí)行<a>的默認(rèn)處理,也不向父對(duì)象<div>傳播');
flags=0;
event.stop();
}
log('<a>-onclick, target='+event.target);
}

// 另一種綁定事件的方法,利用了事件類(lèi)的bindWithEvent方法
$('id_a').onclick=a_onclick.bindWithEvent($('id_a'));

</script>

</body>
</html>