Javascript中事件處理程式

2021-08-28 21:15:45 字數 1729 閱讀 9158

事件繫結

事件處理程式

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』);

a.addeventlistener(『click』,function());

// event: 事件名稱

// function: 事件函式

// boolean: false | true, true 為事件捕獲, false 為事件冒泡(預設);

ele.addeventlistener(event,function[,boolean]); // 新增控制代碼

ele.removeeventlistener(event,function[,boolean]); // 移除控制代碼(匿名函式能被移除,引數必須相同)

優點:可以給乙個新增多個事件處理程式,事件執行順序順序執行如果我們既要支援ie的事件處理方法,又要支援 dom 2級事件,那麼就要封裝乙個跨瀏覽器的事件處理函式,如果支援 dom 2級事件,就用addeventlistener,否則就用attachevent。例子如下
//跨瀏覽器事件處理程式

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 向上遍歷並執行...