JavaScript事件和修改this指向

2021-10-9    前端達(dá)人

1、鼠標(biāo)事件:

onclick 左鍵單擊 ondblclick 左鍵雙擊 onmouseover onmouseenter 鼠標(biāo)移入 onmouseout onmouseleave鼠標(biāo)移出 onmousedown 鼠標(biāo)按下 onmousmove 鼠標(biāo)移動(dòng)(鼠標(biāo)滑動(dòng)) onmouseup 鼠標(biāo)抬起 oncontextmenu 右鍵單擊(右鍵菜單)

 2、鍵盤事件:

onkeydown onkeypress 鍵按下 onkeyup 鍵抬起 鍵盤事件必須放在整個(gè)文檔(document)里面去操作,不能放在節(jié)點(diǎn)里面去操作

3、系統(tǒng)事件:

onload 加載完成后 onerror 加載出錯(cuò)后 onresize 窗口調(diào)整大小時(shí) onscroll 滾動(dòng)時(shí)


  1. //onload 加載完成后 onerror 加載出錯(cuò)后 onresize 窗口調(diào)整大小時(shí) 都是放在window的身上
  2. window.onload = function(){};
  3. //onscroll 滾動(dòng)時(shí) 可以放在document和window身上
  4. document.onscroll = function(){};

 4、表單事件:

onfocus 獲取焦點(diǎn)后 onblur 失去焦點(diǎn)后 onchange 改變內(nèi)容后 onreset 重置后 onselect 選擇后 onsubmit 提交后

5、監(jiān)聽事件(綁定事件)寫法:

節(jié)點(diǎn).事件 = 函數(shù)。

document.getElementById("main").onclick = function(){alert(1)};

document.getElementById("main").addEventListener("click",function(){},false);

行內(nèi)綁定

<button οnclick="alert('hello world')">Click</button>

 <button οnclick="func()">Click</button>

<script type="text/javascript">

          var func = () => {

                    alert('hello world')

          };

</script>

6、事件函數(shù)this指向:在事件函數(shù)中,關(guān)鍵詞 this 就表示觸發(fā)事件的這個(gè)節(jié)點(diǎn)對象。

 7、修改this指向:

call() 第一個(gè)參數(shù)為 函數(shù)this將要修改指向的對象 函數(shù)有參數(shù)時(shí) 后面, 一一跟上即可 可以主動(dòng)執(zhí)行函數(shù)

apply() 第一個(gè)參數(shù)為 函數(shù)this將要修改指向的對象 函數(shù)有參數(shù)時(shí) 數(shù)組包一下 可以主動(dòng)執(zhí)行函數(shù)

bind() 第一個(gè)參數(shù)為 函數(shù)this將要修改指向的對象 函數(shù)有參數(shù)時(shí) 后面, 一一跟上即可 不不不會(huì)主動(dòng)執(zhí)行函數(shù) 但會(huì)return函數(shù)本體 再加一個(gè)括號即可執(zhí)行  


  1. window.a = 0 //在window對象下創(chuàng)建一個(gè)屬性,屬性值為0
  2. let obj1 = {
  3. a: 1
  4. }
  5. let obj2 = {
  6. a: 2
  7. }
  8. function fn(num1, num2, num3) {
  9. console.log(this.a);
  10. console.log(num1, num2, num3);
  11. }
  12. //修改函數(shù)里面this的指向
  13. fn.call(obj1,4,5,6)
  14. fn.apply(obj2,[4,5,6])
  15. fn.bind(obj1,4,5,6)()

 


藍(lán)藍(lán)設(shè)計(jì)建立了UI設(shè)計(jì)分享群,每天會(huì)分享國內(nèi)外的一些優(yōu)秀設(shè)計(jì),如果有興趣的話,可以進(jìn)入一起成長學(xué)習(xí),請掃碼藍(lán)小助,報(bào)下信息,藍(lán)小助會(huì)請您入群。歡迎您加入噢~~希望得到建議咨詢、商務(wù)合作,也請與我們聯(lián)系。

分享此文一切功德,皆悉回向給文章原作者及眾讀者.

轉(zhuǎn)自:csdn
免責(zé)聲明:藍(lán)藍(lán)設(shè)計(jì)尊重原作者,文章的版權(quán)歸原作者。如涉及版權(quán)問題,請及時(shí)與我們?nèi)〉寐?lián)系,我們立即更正或刪除。

藍(lán)藍(lán)設(shè)計(jì)www.bouu.cn )是一家專注而深入的界面設(shè)計(jì)公司,為期望卓越的國內(nèi)外企業(yè)提供卓越的UI界面設(shè)計(jì)、BS界面設(shè)計(jì) 、 cs界面設(shè)計(jì) 、 ipad界面設(shè)計(jì) 、 包裝設(shè)計(jì) 、 圖標(biāo)定制 、 用戶體驗(yàn) 、交互設(shè)計(jì)、 網(wǎng)站建設(shè) 平面設(shè)計(jì)服務(wù)

分享本文至:

日歷

鏈接

個(gè)人資料

存檔