事件繫結優點:簡單方便事件處理程式
var fun = function();
移除事件處理程式
fun = function(){}
缺點:js和html耦合度太高,每次修改函式要變動兩個地方。
存在乙個時差問題,使用者可能會在html元素一出現就觸發事件,但是事件處理程式沒有載入好
document.getelementbyid(「btn」).onclick = fun;//此處繫結的是函式名優點:簡單方便,有跨瀏覽器優勢移除事件處理程式
document.getelementbyid(『btn』).onclick = null;
缺點:存在時差問題
var a = document.getelementbyid(「btn」)優點:可以給乙個元素新增多個事件處理程式,所有事件都會被新增到冒泡階段,事件執行順序逆序執行a.attachevent(「onclick」, fun);
// 移除控制代碼
a.detachevent(『onclick』, fun);
接受兩個引數,乙個事件處理程式名稱,乙個事件處理函式匿名函式能被移除,引數必須相同)
var a = document.getelementbyid(『btn』);優點:可以給乙個新增多個事件處理程式,事件執行順序順序執行如果我們既要支援ie的事件處理方法,又要支援 dom 2級事件,那麼就要封裝乙個跨瀏覽器的事件處理函式,如果支援 dom 2級事件,就用addeventlistener,否則就用attachevent。例子如下a.addeventlistener(『click』,function());
// event: 事件名稱
// function: 事件函式
// boolean: false | true, true 為事件捕獲, false 為事件冒泡(預設);
ele.addeventlistener(event,function[,boolean]); // 新增控制代碼
ele.removeeventlistener(event,function[,boolean]); // 移除控制代碼(匿名函式能被移除,引數必須相同)
//跨瀏覽器事件處理程式
var eventutil =
else
if(element.attachevent)
else},
// 刪除控制代碼
removehandler:
function
(element, type, handler)
else
if(element.detachevent)
else}}
;var obtn = document.
getelementbyid
('btn');
function
evtfn()
eventutil.
addhandler
(obtn,
'click'
, evtfn)
;eventutil.
removehandler
(obtn,
'click'
, evtfn)
;
javascript事件處理
事件 描述 onblur 物件失去焦點,可以是某文字或文字區 onchange 物件改變,可以是文字或文字區 onfocus 物件獲得焦點,可由鍵盤或滑鼠引起 onclick 滑鼠單擊某按鈕 onload 載入某網頁,能產生此事件的window 及document 物件onmouseover 滑鼠移...
javascript事件處理
事件流兩種傳遞方式 分別為事件冒泡與事件捕獲。對於事件冒泡,事件觸發後,從觸發它的容器一層層上傳到父容器。所以會出現多容器對同一事件處理的現象,這可能不是我們希望看到的。事件捕獲則相反,是從最不具體的容器傳遞到觸發事件的容器。新增事件處理程式 一 html事件處理 內嵌到html 中,聯絡緊密,變動...
JavaScript中事件冒泡與事件捕獲
如圖 現在有3個巢狀div,且都有onclick事件,當div 3被單擊時,依次觸發div 3 div 2 div 1的click事件。這就是事件冒泡 當乙個事件被觸發時,依次由最上層元素 div 3 向下遍歷並執行該元素及父元素相同事件的過程就是事件冒泡。當事件由最底層 div 1 向上遍歷並執行...