JavaScript學習記錄十

2021-08-28 04:09:18 字數 2354 閱讀 4026

總結繫結事件的區別:

* addeventlistener();

* attachevent()

** 相同點: 都可以為元素繫結事件

* 不同點:

* 1.方法名不一樣

* 2.引數個數不一樣addeventlistener三個引數,attachevent兩個引數

* 3.addeventlistener 谷歌,火狐,ie11支援,ie8不支援

*   attachevent 谷歌火狐不支援,ie11不支援,ie8支援

* 4.this不同,addeventlistener 中的this是當前繫結事件的物件

*   attachevent中的this是window

* 5.addeventlistener中事件的型別(事件的名字)沒有on

*  attachevent中的事件的型別(事件的名字)有on

解綁事件:

/** 注意:用什麼方式繫結事件,就應該用對應的方式解綁事件

* 1.解綁事件

* 物件.on事件名字=事件處理函式--->繫結事件

* 物件.on事件名字=null;

* 2.解綁事件

* 物件.addeventlistener("沒有on的事件型別",命名函式,false);---繫結事件

* 物件.removeeventlistener("沒有on的事件型別",函式名字,false);

* 3.解綁事件

* 物件.attachevent("on事件型別",命名函式);---繫結事件

* 物件.detachevent("on事件型別",函式名字);

案例: 繫結和解綁相容的封裝

//繫結事件的相容

function addeventlistener(element,type,fn) else if(element.attachevent)else

} //解綁事件的相容

//為任意的乙個元素,解綁對應的事件

function removeeventlistener(element,type,fnname) else if(element.detachevent)else

}

事件冒泡:多個元素巢狀,有層次關係,這些元素都註冊了相同的事件,如果裡面的元素的事件觸發了,

外面的元素的該事件自動的觸發了.

//事件冒泡,阻止事件冒泡,

//如何阻止事件冒泡: window.event.cancelbubble=true; ie特有的,谷歌支援,火狐不支援

// e.stoppropagation(); 谷歌和火狐支援,

my$("dv1").onclick=function () ;

my$("dv2").onclick=function () ;

//事件處理引數物件

my$("dv3").onclick=function (e) ;

事件有三個階段:

/**可以理解為警察抓小偷,小偷藏在最裡邊的房間,警察的捕獲是由外向裡的。

* 1.事件捕獲階段  :從外向內

* 2.事件目標階段  :最開始選擇的那個

* 3.事件冒泡階段  : 從裡向外

** 為元素繫結事件

* addeventlistener("沒有on的事件型別",事件處理函式,控制事件階段的)

* 事件觸發的過程中,可能會出現事件冒泡的效果,為了阻止事件冒泡--->

* window.event.cancelbubble=true;谷歌,ie8支援,火狐不支援

* window.event就是乙個物件,是ie中的標準

* e.stoppropagation();阻止事件冒泡---->谷歌和火狐支援

* window.event和e都是事件引數物件,乙個是ie的標準,乙個是火狐的標準

* 事件引數e在ie8的瀏覽器中是不存在,此時用window.event來代替

* addeventlistener中第三個引數是控制事件階段的

* 事件的階段有三個:

* 通過e.eventphase這個屬性可以知道當前的事件是什麼階段你的

* 如果這個屬性的值是:

* 1---->捕獲階段

* 2---->目標階段

* 3---->冒泡

* 一般預設都是冒泡階段,很少用捕獲階段

* 冒泡階段:從裡向外

* 捕獲階段:從外向內

function f1() 

f1();

//頁面載入完畢後,過了1秒才執行函式的**

setinterval(f1,1000);

JavaScript學習記錄五

程式設計思想 把一些生活中做事的經驗融入到程式中 面向過程 凡事都要親力親為,每件事的具體過程都要知道,注重的是過程 物件導向 根據需求找物件,所有的事都用物件來做,注重的是結果 物件導向特性 封裝,繼承,多型 抽象性 js不是物件導向的語言,但是可以模擬物件導向的思想 js是一門基於物件的語言 萬...

JavaScript學習記錄十二

scroll系列 元素的樣式屬性是無法直接通過 物件.style.屬性來獲取 樣式在style屬性中設定 offset系列 offsetleft 距離左邊位置的值 offsettop 距離上面位置的值 offsetwidth 元素的寬 有邊框 offsetheight 元素的高 有邊框 scroll...

android學習記錄 十

改變傳入的資料庫版本號就可以觸發資料庫公升級.val dbhelper mydatabasehelper this bookstore.db 5 此時會呼叫onupgrade方法.重寫onupgrade方法 override funonupgrade db sqlitedatabase,oldver...