一文搞定JS事件基礎與進階

1.事件簡介
2.事件的調用方式
       
在script標籤中使用
       
在元素中調用
3.鼠標事件
       
鼠標點擊
       
鼠標移入移除
       
鼠標按住鬆開
4.鍵盤事件
5.表單事件
       
onfocus和onblur
       
onselect
       
onchange
6.編輯事件
       
oncopy
       
onselectstart
       
oncontextmenu
7.頁面事件
       
onload
       
onbeforeunload
8.事件監聽器
9.event對象

在這裏插入圖片描述

1.事件簡介

在這裏插入圖片描述舉個例子,當我們點擊一個按鈕時,會彈出一個對話框。其中“點擊”就是一個事件,“彈出對話框”就是我們在點擊這個事件裏面做的一些事情。事件一般是用戶對頁面的一些‘小動作’引起的,如點擊鼠標移動鼠標,js裏邊常見的事件一般有五種:

  1. 鼠標事件
  2. 鍵盤事件
  3. 表單事件
  4. 編輯事件
  5. 頁面事件

2.事件的調用方式

2.1在script標籤裏邊調用
obj.事件名 = function()
{
    ……
};

obj是一個DOM對象

2.2在元素中調用事件

例子:
在這裏插入圖片描述

3.鼠標事件

3.1鼠標事件簡介

在這裏插入圖片描述

3.2鼠標點擊

例子:結合div模擬按鈕
在這裏插入圖片描述

3.3鼠標移入移除

例子:
在這裏插入圖片描述

3.4鼠標的按下和鬆開

在這裏插入圖片描述

4.鍵盤事件

鍵盤按下:onkeydown
鍵盤松開:onkeyup

例子1:統計輸入字符長度(用兩張事件都行只是一個是按下統計一個鬆開後統計)
在這裏插入圖片描述

5.表單事件

5.1onfocus和onblur

onfocus:表示獲取焦點觸發的事件
onblur:表示失去焦點觸發的事件

例子1:
在這裏插入圖片描述
默認的情況需要我們點擊文本框才能自動獲取焦點,那麼我們也可以讓他們自動獲取焦點,用==focus()==方法就行

例子2:自動獲取焦點

在這裏插入圖片描述

5.2onselect

當我們選中單行或者多行文本框的時候,就會觸發此類事件

例子:手動選中文本框觸發事件
在這裏插入圖片描述
其實我們可以自動選中文本框,可以用select() 方法,看下面例子

在這裏插入圖片描述

5.3onchange

用於具有多個選項的表單元素的操作

例子1:單選框選擇某一項的時候觸發

在這裏插入圖片描述

例子2:複選框的全選和反選

在這裏插入圖片描述
例子3:下拉列表:
在這裏插入圖片描述

6.編輯事件

6.1oncopy

oncopy表示不能複製

例子:文字不能進行復制
在這裏插入圖片描述

6.2onselectstart

onselectstart防止頁面內容被選取

例子:文字內容不可被選中
在這裏插入圖片描述

6.3oncontextmenu

oncontextmenu禁止使用鼠標右鍵

例子:可以選中但是不能使用鼠標右鍵進行復制氣不氣
在這裏插入圖片描述

7.頁面事件

7.1onload

onload表示文檔加載完成後再執行一個事件

我們看下面一段代碼:
在這裏插入圖片描述

我們這一段代碼點擊提交的時候瀏覽器是會報錯的,這是由於在默認的情況下,瀏覽器是從上到下來解析一個頁面的,當解析到var oBtn = document.getElementById("btn");的時候就會報錯因爲找不到id爲btn的元素在哪,那麼正確的使用方法是:

在這裏插入圖片描述當瀏覽器解析到window.onload時就不會解析window.onload內部的代碼而是繼續往下解析,直到把整個文檔解析完畢後在回去解析window.onload內部的代碼

7.2onbeforeunload

onbeforeunload表示離開頁面之前觸發的一個事件

我們看一個例子:
在這裏插入圖片描述
這是剛開始運行的時候。當我們關閉頁面時會出現如下(具體的e是啥會在event對象裏邊講):

在這裏插入圖片描述

8.事件監聽器

我們直接看一個例子(下面是我第一次點擊按鈕出現的畫面):

在這裏插入圖片描述
我們在給一個按鈕添加三次onlick事件,但是js只會執行第三次,所以 事件處理器 是不能爲同一元素添加多個事件的,那麼這時候就需要我們的事件監聽器

所謂的事件監聽器指的是使用addEventListener()方法爲元素添加一個事件,我們又稱爲綁定事件

語法:

obj.addEventListener(type,fn,false)
1.obj是一個DOM對象
2.type是一個字符串指的是事件類型如單擊事件click等,注意這裏的事件類型是不需要加上on作爲前綴的
3.fn是一個函數名(匿名函數或者函數名)
4.false表示事件冒泡階段調用(高級內容不詳細說明)

例子1:addEventListener()方法的使用
在這裏插入圖片描述
例子2:對同一元素添加多個事件

在這裏插入圖片描述
點擊按鈕後會依次彈出三個對話框

例子3:多次調用window.onload

在這裏插入圖片描述我們會發現只有我們多次使用window.onload時會發現只會執行第三個window.onload,我們也可以用
addEventListener()方法方法來解決

在這裏插入圖片描述
那麼我們既然可以使用addEventListener()方法綁定事件,那麼也可以解除綁定某一個事件

語法:obj.removeEventListener(type,fn,false)
注意這裏的fn只能是函數名

例子:解除事件監聽器添加的事件

在這裏插入圖片描述當我們直接點擊文字部分就會變成粉色,當我們點擊解除按鈕的時候,再點擊文字就不會變成粉色

注意這裏的removeEventListener()方法只能解除事件監聽器添加的事件不能解除事件處理器添加的事件

當然我們也可以解除事件處理器添加的事件,如下例子:

在這裏插入圖片描述

9.event對象

當一個事件發生後,有關的這個事件的詳細的信息都會臨時保存在一個指定的地方,這個地方就是event對象

event常用屬性:
在這裏插入圖片描述

例子1:type獲取事件的類型

在這裏插入圖片描述這個e是以什麼玩意,實際上我們每次調用一個事件的時候js就會默認的給這個事件函數加上一個隱形的參數,這個參數就是event對象,一般來說event對象是作爲事件函數的第一個參數,e只是一個變量名,它存儲着一個event對象

例子2:keyCode獲取鍵對應的鍵碼

常用按鍵的鍵碼:

按鍵 鍵碼
W 87
S 83
A 65
D 68
上箭頭 38
下箭頭 40
左箭頭 37
右箭頭 39

如果是shift,Ctrl,Alt這幾個鍵我們不需要使用keyCode來獲取,之間通過shiftKey,ctrlKey,altKey這三個屬性來獲取

在這裏插入圖片描述

例子3:獲取上下左右方向鍵

在這裏插入圖片描述

我們在點擊各個方向的時候會顯示相應的方向的漢字

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章