標籤:something 瀏覽器 function button 控制線
JavaScript是單線程,在同一個時間點,不可能同時運行兩個“控制線程”。
事件控制代碼和事件對象
1.註冊事件控制代碼
標準和非標準
var button=documenbt.elementByID("#button");button.addEventListener(‘click‘,function(){ //do something.},false);//第三個參數表明事件是否阻止冒泡。true阻止冒泡,false類似預設行為一樣進行事件冒泡。
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.獲得事件對象
標準 event
非標準: window.event
相容性代碼:
registerEventHandler(document.body,"click",function(event){ event=event||window.event; print(event.clientX,",",event.clientY); });
3.從事件對象中擷取資料
滑鼠事件,event對象中的屬性(部分):
650) this.width=650;" src="http://images2015.cnblogs.com/blog/59618/201608/59618-20160805140902043-1398533542.png" style="margin:0px;padding:0px;border:0px;" alt="59618-20160805140902043-1398533542.png" />
4.標記事件已經完成
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.滑鼠事件,
2.鍵盤事件
3.停止行為
事件冒泡和阻止預設行為。標準和非標準如下:
阻止事件冒泡:
event.stopPropagation
cancelBubble
阻止預設行為:
event.preventDefault();
returnValue=false;
4.跟蹤焦時間點事件
focus和blur
5.表單事件
submit事件
6.window事件
load事件:在文檔完全載入完畢時觸發
resize事件: 每次視窗發生改變時被觸發
scroll事件: 文檔滾動的時候,瀏覽器都會觸發window對象上的scroll事件
JavaScript事件概覽