摘要:JavaScript事件JavaScript是單線程,在同一個(gè)時(shí)間點(diǎn),不可能同時(shí)運(yùn)行兩個(gè)“控制線程”。事件句柄和事件對(duì)象1.注冊(cè)事件句柄標(biāo)準(zhǔn)和非標(biāo)準(zhǔn)var button=documenbt.elementByID("#button"); button.addEventListener('click',function(){ &n
JavaScript事件
JavaScript是單線程,在同一個(gè)時(shí)間點(diǎn),不可能同時(shí)運(yùn)行兩個(gè)“控制線程”。
事件句柄和事件對(duì)象
1.注冊(cè)事件句柄
標(biāo)準(zhǔn)和非標(biāo)準(zhǔn)
var button=documenbt.elementByID("#button"); button.addEventListener('click',function(){ //do something. },false); //第三個(gè)參數(shù)表明事件是否阻止冒泡。true阻止冒泡,false類似默認(rèn)行為一樣進(jìn)行事件冒泡。
var button=documenbt.elementByID("#button"); button.attachEvent('onclick',function(){ //do something. });
早期兼容性代碼,查看瀏覽器支持哪種事件模型:
function registerEventHandler(node,event,handler){ if(typeof node.addEventListener=='function'){ node.addEventListener(node,event,handler); } else{ node.attachEvent("on"+event,hander); } } registerEventHandler(button,"click",function(){ //to do });
2.獲得事件對(duì)象
標(biāo)準(zhǔn) event
非標(biāo)準(zhǔn): window.event
兼容性代碼:
registerEventHandler(document.body,"click",function(event){ event=event||window.event; print(event.clientX,",",event.clientY); });
3.從事件對(duì)象中獲取數(shù)據(jù)
鼠標(biāo)事件,event對(duì)象中的屬性(部分):
4.標(biāo)記事件已經(jīng)完成
function unregisterEventHandler(node,event,handler){ if(typeof node.removeEventListener=='function'){ node.removeEventListener(node,event,handler); } else{ node.detachEvent("on"+event,hander); } } registerEventHandler(button,"click",function(){ //to do });
事件類型
1.鼠標(biāo)事件,
2.鍵盤事件
3.停止行為
事件冒泡和阻止默認(rèn)行為。標(biāo)準(zhǔn)和非標(biāo)準(zhǔn)如下:
阻止事件冒泡:
event.stopPropagation
cancelBubble
阻止默認(rèn)行為:
event.preventDefault();
returnValue=false;
4.跟蹤焦點(diǎn)事件
focus和blur
5.表單事件
submit事件
6.window事件
load事件:在文檔完全加載完畢時(shí)觸發(fā)
resize事件: 每次窗口發(fā)生改變時(shí)被觸發(fā)
scroll事件: 文檔滾動(dòng)的時(shí)候,瀏覽器都會(huì)觸發(fā)window對(duì)象上的scroll事件