2-44鍾靜雯_day08
Day08作業 JavaScript瀏覽器程式設計
作業01 事件委託建立li元素
- C
- AI
- Java
- Python
方法 語法
建立元素 document.createElement(‘元素名’)
建立文字節點 document.createTextNode(‘文字節點的內容’)
新增子節點 appendChild(‘要新增的子節點’),返回追加的節點物件
插入子節點 insertBefore(新節點,要插入到它之前的節點)
刪除子節點 removeChild(刪除的子節點)
替換子元素 replaceChild(新子節點, 老子節點)
克隆節點 cloneNode()——深度複製(true)、淺度複製(false)
合併相鄰的文字節點並刪除空的文字節點 normalize()
插入節點:(到父節點的子節點的位置)
最後或最開始(只適用於元素節點)
父節點.append():在父節點的最後一個子節點之後插入一組Node物件或DOMString物件。
父節點.prepend():在父節點ParentNode第一個後代前插入一組Node物件或者DOMString物件。
中間(適用於元素節點和文字節點)
子節點.before(要插入的節點):在子節點之前插入節點。
子節點.after(要插入的節點):在子節點之後插入節點。
- Java
- JavaScript
- Python
子節點.remove(),把子節點從它所屬的DOM樹中刪除。
- Java
- JavaScript
- Python
子節點.replaceWith(),用一套Node物件或者DOMString物件,替換了該節點父節點下的子節點。
- Java
- JavaScript
- Python
設定元素的 class 屬性(最簡單的方式)
先設定好class樣式選擇器。
然後通過classList.add()、classList.remove()、classList.toggle()切換。
style物件的屬性與CSS規則一一對應,但是CSS屬性的名字可能要改寫。
去掉橫槓,橫槓後第一個字母大寫。
如果屬性名是JS保留字,屬性名前面就必須加上字串CSS(cssFloat)。
設定時必須包含單位。
- JavaScript高階程式設計
- JavaScript權威指南
window.getComputedStyle():返回一個物件,包含所有計算值。
獲得的值是隻讀的絕對值。
簡寫屬性得不到。
cssText為undefined。
如:“click”, “dblclick”,“mouseover”,“mouseup”, “keydown”, “keyup”…
兩種型別
瀏覽器事件:預定義的內建事件,瀏覽器自動觸發。
合成事件:程式設計師自定義的事件,自己定義、自己觸發。
事件目標:這是發生事件或與事件關聯的物件。
事件處理程式或者事件監聽器:一個函式,用於處理或響應事件。
註冊事件處理程式:
1.在目標物件上設定事件處理程式屬性。
click me 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 2.在目標HTML文件元素上設定事件處理程式屬性。(不推薦使用!) click me2 1 2 3 3.目標物件.addEventListener(‘事件型別’, 事件處理程式, {})。 第一個引數:事件型別。事件型別(或名稱)是一個字串,不包括設定事件處理程式屬性時使用的on字首。
第二個引數:事件處理程式,即在發生指定型別的事件時應呼叫的函式(箭頭函式、函式宣告、函式表示式等)。
第三個引數:布林值、物件。
布林值:true表示在捕獲階段呼叫事件處理程式,false(預設值)表示在冒泡階段呼叫事件處理程式。
物件:{ }
capture:設定該事件是否在捕獲階段觸發監聽函式(預設為false)。
once:設定監聽函式是否只觸發一次,然後就自動移除(預設為false)。
passive:設定監聽函式不會呼叫事件的preventDefault方法(預設為false)。
注意:必須與addEventListener的引數完全一樣,否則不起作用。
事件驅動程式設計步驟
獲取事件目標。
在事件目標上為指定事件型別註冊事件處理程式。
瀏覽器監聽事件目標上的事件。
當事件目標上發生指定型別的事件時,瀏覽器將呼叫處理程式函式。
click<script>
// 為按鈕新增click事件
// 1.獲取事件目標
const oButton = document.querySelector('button');
// 函式宣告
function callback() {
console.log('Hello,Event');
}
// or
// 函式表示式 回撥函式
const callback = function() {
console.log('Hello,Event');
}
//註冊事件處理程式:同一事件addEventListener可以繫結多個事件處理程式
oButton.addEventListener('click',callback);
oButton.addEventListener('click',()=>{
console.log('hello,event1');
},true)
</script>
事件傳播機制 1.事件傳播:確定在哪些物件上觸發事件處理程式。
2.事件流:描述了頁面接收事件的順序,分三個階段:(先捕獲,再冒泡)
捕獲階段:從根元素開始(Window->Document),向下傳播到觸發事件的元素。
到達目標階段。
冒泡階段:從觸發事件的元素開始,向上傳播到根元素。
event = new Event(type, options);
1
第一個引數type是字串,表示事件的名稱;
第二個引數options是一個物件,表示事件物件的配置。該物件主要有下面兩個屬性:
bubbles:布林值,可選,預設為false,表示事件物件是否冒泡(預設是不冒泡!)。
cancelable:布林值,可選,預設為false,表示事件是否可以被取消,即能否用Event.preventDefault()取消這個事件。一旦事件被取消,就好像從來沒有發生過,不會觸發瀏覽器對該事件的預設行為。
步驟
建立自定義事件:自定義事件物件 = new Event(‘自定義事件型別字串’, options)。
繫結到目標:事件目標.addEventListener(‘自定義事件型別的字串’, 事件程式程式,options)。
分派事件:事件目標.dispatchEvent(自定義事件物件)。
常見用法:表單校驗中,如果表單欄位校驗失敗,就阻止表單的提交。
Microsoft HomePage stopPropagation():用於取消所有後續事件捕獲或事件冒泡。 stopImmediatePropagation():用於取消所有後續事件捕獲或事件冒泡,並阻止呼叫任何後續事件處理程式,適用於繫結了多個事件處理程式。相關文章
- 2-44鍾靜雯_day02
- 2-44鍾靜雯_day10
- 2-44鍾靜雯_day11
- 2-44鍾靜雯_day03
- day08
- Day08——強制轉換
- 2006-京淘Day08
- day08 Go中的物件導向Go物件
- GNSS鍾跳探測
- 演算法實踐:KNN分類(day08)演算法KNN
- 傳智黑馬python基礎學習——day08Python
- 王者榮耀鍾馗技能怎麼用?王者榮耀鍾馗連招怎麼連呢?
- 王者榮耀鍾馗閃現技能怎麼用?王者榮耀鍾馗技能的玩法技巧
- MySQL 行轉列詳情鍾萼MySql
- python實現記時器(番茄鍾)Python
- L1-059 敲笨鍾 分數 20
- 最新研究怎樣才算一見鍾情?
- 常用Python編輯器,你鍾愛哪一個?Python
- 定弘法師(鍾茂森博士)的九大願
- 何雯娜退出我家那閨女原因 我家那閨女郭躍參加KO
- Morning Consult:Z世代最鍾愛的品牌排行榜
- RabbitMQ實戰教程-鍾林森-專題視訊課程MQ
- 靜態域與靜態方法
- 靜態
- net 靜態方法與非靜態方法
- L1-088 靜靜的推薦
- JavaScript 靜態屬性與靜態方法JavaScript
- 一看就懂!【英雄聯盟銳雯】與 Python 詳解設計模式之門面模式Python設計模式
- 科技愛好者週刊(第 295 期):巧妙的燈泡鍾
- 為什麼有的人只鍾情於非暴力遊戲?遊戲
- 鍾忠:創新引領未來,築牢責任底線
- 靜態路由路由
- 靜態方法
- doubleselect 靜態
- 印度消費者為什麼對環保時尚情有獨鍾?
- 快手本地生活小程式運營大佬鍾大姐的創業史創業
- 偽靜態、靜態和動態的區別
- L1-088 靜靜的推薦 分數 20