原生JS的事件繫結
原生js的事件繫結有兩種方法:
1.通過HTML屬性處理函式的繫結
example:
1)<button id='oBtn' onclick="alert('hahaha')">click</button>
2)<button onclick="la()">click</button>
<script>
function la(){alert('xixi');}
</script>
這種方法適合編寫簡短的小事件,不會涉及到太大的效能問題。
2通過JavaScript物件屬性來繫結
var btn = document.getElementById('oBtn');
btn.onclick = function(){
alert('xixi');}
但是這種方法的缺陷就是隻能對一個元素的一個事件進行繫結,會出現覆蓋的效果,只會執行最後面定義的。
3利用所有文件元素的方法
這種方法有相容性問題
(1)addEventListener(type,handler,boolean),相容IE8以後的所有瀏覽器
(2)attachEvent(type,handler),適用IE8以下的版本
用法:oDiv1.addEventListener('click',function(){
alert('div11');
},false);
事件的執行順序與事件的註冊順序是一致的,
oDiv1.attachEvent('onclick',function(){
alert('haha');
});
登出的方法分別是removeEvent() and detach()
可以自己封裝一個函式來做相容:
//add~event
funciton addEvent(elem,type,fn){
if(elem.addEventListener)//judge
{
elem.addEventListener(type,fn,false);//預設是冒泡
}
else if(elem.attachEvent){
elem[type+fn] = function(){
fn.call(elem);
};
elem.attachEvent('on'+type,elem[type+fn]);
}
else{
elem['on'+type] = fn;
}
//remove~ event
function removeEvent(elem,type,fn){
if(elem.removeEventListener){
elem.removeEventListener(type,fn,false);
}else if{
elem.detachEvent('on'+type,elem[type+fn]);
}else{
elem['on'+type] = fn;
}
}
//call function
addEvent(oBtn,'click',function(){
alert(this.innerHTML);
});
removeEvent(oBtn,'click',,function(){
alert(this.innerHTML);
});
相關推薦
原生js事件繫結和事件委託
最近常在移動端開發,由於不是大型站點,不需要使用vue等庫,也不需要引用jquery和zepto等。 寫得最多得就是各種元素選擇器和事件繫結,操作下來也是有點煩人。這時候懷念起jquery的美好來了,但是僅為了這個引用這麼大個庫,實在時下不了手,思考了一下,直
原生js事件繫結和事件移除
/** * @description 事件繫結,相容各瀏覽器 * @param target 事件觸發物件 * @param type 事件 * @param func 事件處理函式 */ function addEvents(target, type
原生JS事件繫結onclick和addEventListener
onclick繫結方式 優點: - 簡潔 - 處理事件的this關鍵字指向當前元素 缺點: - 不能對事件捕獲或事件冒泡進行控制,只能使用事件冒泡,無法切換成事件捕獲 - 一次只能對一個元素繫結一個事件處理
js事件 繫結
DOM3級事件中定義了9個滑鼠事件。 mousedown:滑鼠按鈕被按下(左鍵或者右鍵)時觸發。不能通過鍵盤觸發。 mouseup:滑鼠按鈕被釋放彈起時觸發。不能通過鍵盤觸發。 click:單擊滑鼠左鍵或者按下回車鍵時觸發。這點對確保易訪問性很重要,意味著onclick事
JS事件繫結,事件監聽,事件委託
在JavaScript的學習中,我們經常會遇到JavaScript的事件機制,例如,事件繫結、事件監聽、事件委託(事件代理)等。這些名詞是什麼意思呢,有什麼作用呢? 事件繫結 要想讓 JavaScript 對使用者的操作
js 事件繫結
給一個物件繫結一個事件處理函式的第一種形式 obj.onclick = fn; <!DOCTYPE html> <html> <head> &
Js事件繫結時,函式名加括號和不加括號有什麼區別
一,在js程式碼裡 加括號代表呼叫,執行這個方法; 不加括號目的是引用,代表把這個函式賦值給某個變數。 在下面程式碼裡: 1.1 btn.onclick=aa;是正
js事件繫結的幾種方式與on()、bind()的區別
一直不是很理解幾種js事件繫結之間的區別與聯絡,今天百度了一下,在此做一總結: 1.如果只是簡單的繫結一個事件,可以直接寫在行內,點選執行一個函式,例如 <button onclick="alert('點我啊!')">點我啊</button> 2.也
js事件繫結的幾種方式
原文地址:https://www.cnblogs.com/javawebstudy/p/5266168.html 要想讓 JavaScript 對使用者的操作作出響應,首先要對 DOM 元素繫結事件處理函式。所謂事件處理函式,就是處理使用者操作的函式,不同的操作對應不同的名
js事件繫結,事件流,事件代理的一些理解
一、事件繫結: 事件繫結的三種方法: 1、在DOM中直接繫結: //<ul id="parent-list" onclick="printName(this)"> //this指當前發生時
js事件繫結、事件監聽、事件委託
一、JavaScript事件:事件是文件或瀏覽器中發生的特定互動瞬間! 事件流: 1、事件冒泡:事件冒泡即事件最開始由最具體的元素(文件中巢狀層次最深的那個節點)接收,然後逐級向上傳播至最不具體的節點(文件)。 text–>div–&
原生js事件批量繫結-事件委託
我們常常會遇到一個需求,就是給表格裡面的每個特定的td繫結一個事件. 遇到這種需求,很多人基本都會想到如下程式碼: var td = document.getElementsByTagName("td"); for( let i =0; i<
原生JS的事件繫結
原生js的事件繫結有兩種方法: 1.通過HTML屬性處理函式的繫結 example: 1)<button id='oBtn' onclick="alert('hahaha')">click
js/jQuery繫結將來生成的事件
HTML <button class="num1">點選生成按鈕</button> <div class="newbtn" id="newparent" style="width: 400px;height: 80px;border: 1px solid r
js 回車鍵繫結事件
<label class="col-sm-1 control-label">快速搜尋<span style="color:red;"> </span> </label>
JS的事件繫結和事件流模型
一、JS事件 (一)JS事件分類 1.滑鼠事件: click/dbclick/mouseover/mouseout 2.HTML事件: onload/onunload/onsubmit/onresize/onchange/onfoucs/onscroll 3.鍵盤事件
深入理解JS的事件繫結、事件流模型
https://www.jb51.net/article/139997.htm 一、JS事件 (一)JS事件分類 1.滑鼠事件: click/dbclick/mouseover/mouseout 2.HTML事件: onload/onunload/onsubmit/onresize/o
關於js中繫結事件失效問題
相信很多開始學習前端開發的朋友都發生過繫結事件失效的問題,那麼究竟是什麼原因使得事件失效呢? 這裡作者以jquery庫編寫作為例子。 第一種:直接失效。 <html> <head> <script type="text/javascript" src="/j
vue.js v-on事件使用,vue.js event事件繫結
vue.js v-on事件使用,vue.js event事件繫結 ================================ ©Copyright 蕃薯耀 2018年12月04日 http://fanshuyao.iteye.com/ <!DOCT
js事件高階應用01(事件繫結 、高階拖拽)
事件繫結 IE方式 attachEvent(事件名稱、函式),繫結事件處理函式 detachEvent(事件名稱、函式),解除繫結 DOM方式 add