Javascript基礎(chǔ)知識(二)事件
Event對象:(event對象是window對象的屬性,當(dāng)事件發(fā)生時(shí),同時(shí)產(chǎn)生event對象,事件結(jié)束,event對象消失)
IE中:window.event;//獲取對象
DOM中:argument[0];//獲取對象
IE中Event對象常用的屬性方法:
1.clientX:事件發(fā)生時(shí),鼠標(biāo)指針在客戶區(qū)(不包括工具欄,滾動條等)的X坐標(biāo);
2.clientY:事件發(fā)生時(shí),鼠標(biāo)指針在客戶區(qū)(不包括工具欄,滾動條等)的Y坐標(biāo);
3.keyCode:對于keyCode事件,指示按下的鍵的Unicode字符,對于keydown/keyup事件,指示按下的鍵盤是數(shù)字表示器(獲得按鍵的數(shù)值);
4.offsetX:鼠標(biāo)指針相對于引發(fā)事件的對象的X坐標(biāo);
5.offsetY:鼠標(biāo)指針相對于引發(fā)事件的對象的Y坐標(biāo);
6.srcElement:導(dǎo)致事件發(fā)生的元素;
DOM中event對象常用的屬性方法:
1.clientX;
2.clientY;
3.pageX;鼠標(biāo)指針相對于頁面的X坐標(biāo);
4.pageY;鼠標(biāo)指針相對于頁面的Y坐標(biāo);
5.StopPropagation:調(diào)用該方法可以阻止事件的進(jìn)一步傳播(冒泡);
6.target:觸發(fā)的事件元素/對象;
7.type:事件的名稱;
兩種event對象的相同點(diǎn)和不同點(diǎn):
相同點(diǎn):
1.獲取事件類型;
2.獲取鍵盤代碼(keydown/keyup事件);
3.檢測Shift,Alt,Ctrl;
4.獲取客戶區(qū)坐標(biāo);
5.獲取屏幕坐標(biāo);
不同點(diǎn):
1.獲取目標(biāo);
//IE:var oTarget=oEvent.srcElement;
//DOM: var oTarget=oEvent.target;
2.獲取字符碼;
//IE: var iCharCode=oEvent.keyCode;
//DOM: var iCharCode=oEvent.charCode;
3.阻止事件的默認(rèn)行為;
//IE: oEvent.returnValue=false;
//DOM: oEvent.preventDefault;
4.終止冒泡:
//IE:oEvent.cancelBubble=true;
//DOM:oEvent.stopPropagation
事件類型:
一.鼠標(biāo)事件:
onmouseover:當(dāng)鼠標(biāo)移入時(shí);
onmouseout:當(dāng)鼠標(biāo)移出時(shí);
onmousedown:當(dāng)按下鼠標(biāo)時(shí);
onmouseup:當(dāng)抬起鼠標(biāo)時(shí);
onclick:點(diǎn)擊鼠標(biāo)左鍵時(shí);
ondblclick:雙擊鼠標(biāo)左鍵時(shí);
二.鍵盤事件:
onkeydown:當(dāng)用戶在鍵盤上按下一個鍵時(shí)發(fā)生;
onkeyup:當(dāng)用戶釋放一個按下的鍵時(shí)發(fā)生;
keypress:當(dāng)用戶一直按著鍵不放時(shí);
三.HTML事件:
onload:加載頁面時(shí);
onunload:卸載頁面時(shí);
abort:當(dāng)用戶終止裝載進(jìn)程之前,如果他還沒有被完全轉(zhuǎn)載,發(fā)生abort事件
error:javascript發(fā)生錯誤時(shí),產(chǎn)生的事件;
select:在一個input或者textarea中,用戶選擇字符時(shí),觸發(fā)的select事件
change:在一個input或者textarea中,當(dāng)它失去焦點(diǎn),在select中觸發(fā)change事件
submit:當(dāng)表單被提交時(shí),觸發(fā)submit事件;
reset:重置
resize:當(dāng)窗口或框架尺寸調(diào)整時(shí)觸發(fā)的事件;
scroll:當(dāng)用戶滾動或有滾動條時(shí)觸發(fā)的事件;
focus:失去焦點(diǎn)時(shí);
blur:獲得焦點(diǎn)時(shí);
Javascript的事件模型
1.Javascript事件模型:1.冒泡類型: <input type="button">當(dāng)用戶點(diǎn)擊按鈕時(shí):input-body-html-document-window(從下往上冒泡)IE瀏覽器只是用冒泡
2.捕獲類型: <input type="button">當(dāng)用戶點(diǎn)擊按鈕時(shí):window-document-html-body-input (從上往下)
經(jīng)過ECMA標(biāo)準(zhǔn)化后,其他瀏覽器都支持兩種類型,捕獲先發(fā)生。
2.傳統(tǒng)事件書寫的三種方式:
1.<input type="button" onclick="alert('helloworld!')">
2.<input type="button onclick=name1()">======<script>function name1(){alert('helloword!');}</script> //有名函數(shù)
3.<input type="button" id="input1"> //匿名函數(shù)
<script>
Var button1=document.getElementById("input1");
button1.onclick=funtion(){
alert('helloword!')
}
</script>
3.現(xiàn)代事件書寫方式:
<input type="button" id="input1"> //IE中添加事件
<script>
var fnclick(){
alert("我被點(diǎn)擊了")
}
var Oinput=document.getElementById("input1");
Oinput.attachEvent("onclick",fnclick);
--------------------------------------
Oinput.detachEvent("onclick",fnclick);//IE中刪除事件
</script>
<input type="button" id="input1"> //DOM中添加事件
<script>
var fnclick(){
alert("我被點(diǎn)擊了")
}
var Oinput=document.getElementById("input1");
Oinput.addEventListener("onclick",fnclick,true);
--------------------------------------
Oinput.removeEventListener("onclick",fnclick);//DOM中刪除事件
</script>
<input type="button" id="input1"> //兼容IE和DOM添加事件
<script>
var fnclick1=function(){alert("我被點(diǎn)擊了")}
var fnclick2=function(){alert("我被點(diǎn)擊了")}
var Oinput=document.getElementById("input1");
if(document.attachEvent){
Oinput.attachEvent("onclick",fnclick1)
Oinput.attachEvent("onclick",fnclick2)
}
else(document.addEventListener){
Oinput.addEventListener("click",fnclick1,true)
Oinput.addEventListener("click",fnclick2,true)
}
</script>
- C語言基礎(chǔ)知識點(diǎn)解析(extern,static,typedef,const)
- c++運(yùn)算符重載基礎(chǔ)知識詳解
- C++函數(shù)模板與類模板實(shí)例解析
- C++命名空間實(shí)例解析
- C++普通函數(shù)指針與成員函數(shù)指針實(shí)例解析
- Javascript基礎(chǔ)知識(一)核心基礎(chǔ)語法與事件模型
- Javascript基礎(chǔ)知識(三)BOM,DOM總結(jié)
- javascript學(xué)習(xí)筆記(一)基礎(chǔ)知識
- C++基礎(chǔ)入門教程(一):基礎(chǔ)知識大雜燴
- JavaScript基礎(chǔ)知識學(xué)習(xí)筆記
- C++基礎(chǔ)知識實(shí)例解析(一)
相關(guān)文章
ajax上傳時(shí)參數(shù)提交不更新等相關(guān)問題
我感覺好像這個上傳插件只在第一次點(diǎn)擊的時(shí)候?qū)嵗?shù)傳給后臺,所以以后值都是不變的,應(yīng)該怎么解決這個問題呢2012-12-12Javascript的IE和Firefox兼容性匯編(zz)
[紅色]Javascript的IE和Firefox兼容性匯編(zz)...2007-02-02JavaScript中反正弦函數(shù)Math.asin()的使用簡介
這篇文章主要介紹了JavaScript中反正弦函數(shù)Math.asin()的使用,是JS入門學(xué)習(xí)中的基礎(chǔ)知識,需要的朋友可以參考下2015-06-06javascript、php關(guān)鍵字搜索函數(shù)的使用方法
這篇文章主要介紹了javascript、php關(guān)鍵字搜索函數(shù)的使用方法的相關(guān)資料,需要的朋友可以參考下2018-05-05document.open() 與 document.write()
document.open() 與 document.write()...2006-10-10JavaScript 基礎(chǔ)篇之運(yùn)算符、語句(二)
其實(shí)運(yùn)算符大家要是有計(jì)算機(jī)語言基礎(chǔ)應(yīng)該都知道,可能甚至比我還精通,這樣我就不多解釋了,就來說說其它幾個生疏的吧2012-04-04