【總結整理】JavaScript的DOM事件學習(慕課網)

事件:在文檔或者瀏覽器窗口中發生的一些,特定的交互瞬間

? ? ? ? ? HTML和JavaScript的交互通過事件 來實現

比如:1.滾動條向下滑動,加載圖片 2.圖片輪播,鼠標由2-5頁調換

?

本章內容
1、理解事件流
2、使用事件處理程序
3、不同的事件類型
一、事件流
事件流描述的是從頁面中接受事件的順序。
IE的事件流是事件冒泡流,而Netscape的事件流是事件捕獲流
1、事件冒泡
 事件冒泡,即事件最開始由最具體的元素(文檔中嵌套層次最深的那個節點)接收,然后逐級向上轉播至最不具體的節點(文檔)。
2、事件捕獲
 事件捕獲的思想是不太具體的節點應該更早接收到事件,而最具體的節點最后接收到事件。


二、事件處理程序
1、HTML事件處理程序

? ? ?直接賦值在標簽上,用事件調用,麻煩,改動至少要改兩個地方
2、DOM0級事件處理程序

? ? ?比較傳統的方式:把一個函數賦值給一個事件的處理程序的屬性,簡單,可跨瀏覽器

  btn2.οnclick=showMessage;//?函數調用不加引號不叫括號
3、DOM2級事件處理程序
  DOM2級事件定義了兩個方法:用于處理指定和刪除事件處理程序的操作:addEventListener()和removeEventListener()

  它們都接收三個參數:

    要處理的事件名;//去掉on?

    作為事件處理程序的函數;//?函數調用不加引號不叫括號

    一個布爾值。//主要用false

? ? ? true在捕獲階段調用事件處理程序,false在冒泡階段調用事件處理程序(主要)

btn3.addEventListener('click',showMessage,false);//ie不起作用

btn3.removeEventListener('click',showMessage,false)
4、IE事件處理程序
  attachEvent()添加事件
  detachEvent()刪除事件

btn3.attachEvent('onclick',showMessage);

btn3.detachEvent('onclick',showMessage);//事件還是要有on
  這兩個方法接收相同的兩個參數:(事件處理程序名稱,?事件處理函數)//兩個參數的原因:因為IE8及更早期的版本只支持事件冒泡,默認加到冒泡階段

支持ie事件處理器的瀏覽器有ie和opera

5、跨瀏覽器的事件處理程序

//element.'on'+type
//element.('on'+type)
//element.οnclick===element['onclick']

js中用element.加屬性都等價于element[]?


三、事件對象
事件對象event : 在觸發DOM上的某個事件的時候都會產生一個事件對象
1、DOM中的事件對象
  (1)、type:獲取事件類型
  (2)、target:用于獲取事件目標,事件給誰加上,事件來自于哪個屬性 ?? ?或者節點名稱(element.target.nodeName) ?
  (3)、event.stopPropagation() 阻止事件冒泡 ?event.preventDefault() ?寫了這個函數后,就不會向上冒泡
  (4)、event.preventDefault() 阻止事件的默認行為

? ? ? ? ? ? ? ?默認行為:比如:<a href='#'>超鏈接</a>

    a標簽的默認行為就是跳轉

    bubbles屬性 canselable屬性
2、IE中的事件對象
  (1)、type:獲取事件類型
  (2)、srcElement:用于獲取事件的目標
  (3)、cancelBubble=true阻止事件冒泡  
  (4)、returnValue=false阻止事件的默認行為

?

轉載于:https://www.cnblogs.com/lianghong/p/8384859.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/452796.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/452796.shtml
英文地址,請注明出處:http://en.pswp.cn/news/452796.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Python面試題總結(6)--數據類型(綜合)

1. Python 里面如何實現 tuple 和 list 的轉換&#xff1f; 答&#xff1a; Python 中的類型轉換&#xff0c;一般通過類型強轉即可完成 tuple 轉 list 使用 list() 方法 list 轉 tuple 使用 tuple() 方法 2. 我們知道對于列表可以使用切片操作進行部分元素的選擇&#xff0c…

項目經理需要的思維批判

想做好項目經理&#xff0c;就一定要改變你的思維方式。這對于技術出身的朋友尤其重要。 清末人們自以為天朝&#xff0c;他國皆為蠻夷。結果如何呢&#xff1f;喪師辱國&#xff0c;自己淪為病夫。其根本莫非自己腦筋不對頭&#xff1f;后來又搞洋務運動&#xff0c;以為洋人…

NavigationView更改菜單icon和title顏色變化效果

NavigationView menu默認icon和title會隨著菜單狀態改變而改變&#xff0c;選擇某個菜單后再次打開側邊菜單后會發現該菜單的icon和title會變成應用的主顏色&#xff0c;其他菜單項仍然為黑色。 如果想關閉系統默認的這個效果&#xff0c;有兩種方式&#xff1a; 1. XML布局文件…

java項目打鏡像_docker通過dockerfile打java項目鏡像

環境&#xff1a;centos7思路&#xff1a;java -jar 啟動的項目打包成docker images進行運行創建dockerfile——>創建shell腳本——>打包images1、dockerfile內容如下[rootk8s-master xxl-execl]# more dockerfile#網上拖取java8的鏡像FROM java:8MAINTAINER zhangshan-m…

什么是數據庫

數據庫&#xff08;Database&#xff0c;簡稱DB&#xff09;是長期儲存在計算機內、有組織的、可共享的大量數據的集合。1.數據庫的基本特征2.數據按一定的數據模型組織、描述和儲存3.可為各種用戶共享4.冗余度較小5.數據獨立性較高6.易擴展

NumPy常用屬性及方法

NumPy是高性能科學計算和數據分析的基礎包。部分功能如下&#xff1a; ndarray, 具有矢量算術運算和復雜廣播能力的快速且節省空間的多維數組。用于對整組數據進行快速運算的標準數學函數&#xff08;無需編寫循環&#xff09;。用于讀寫磁盤數據的工具以及用于操作內存映射文件…

Windows下gmssl使用記錄

使用gmssl進行計算sm4&#xff0c;編譯的版本是gmssl2.0&#xff0c;2.1版本編譯不過去 第一步下載軟件&#xff0c;下載Visual Studio 2010旗艦版、nasm-2.13.03-installer-x86、ActivePerl-5.22.4.2205-MSWin32-x86-64int-403863這三個軟件&#xff0c; 注意vs版本不能太低&a…

公司管理項目管理中的技巧

如果在項目實施中選出最難解決的幾個問題&#xff0c;那么管理問題一定名列前茅。在管理問題中&#xff0c;團隊管理又是其中的難點。一個項目管理的好壞&#xff0c;很大程度就體現在團隊的建設和管理上。團隊管理涉及到管理學、心理學和哲學等諸多方面內容&#xff0c;具體實…

數據庫管理系統

什么是數據庫管理系統位于用戶與操作系統之間的一層數據管理軟件是基礎軟件&#xff0c;是一個大型復雜的軟件系統 數據庫管理系統的用途科學地組織和存儲數據、高效地獲取和維護數據數據定義功能提供數據定義語言&#xff08;DDL&#xff09;定義數據庫中的數據對象數據組織、…

kangle服務器搭建java_linux下kangle虛擬主機-架設java空間的教程及心得

1. chmod x jdk-6u31-linux-i586-rpm.bin2. ./jdk-6u31-linux-i586-rpm.bin復制代碼(注&#xff1a;如果下載的版本不同輸入實際版本)2.下載插件包:1. wget http://www.kanglesoft.com/download/ent/easypanel-tomcat-lin-1.0.tar.gz2. tar xzf easypanel-tomcat-lin-1.0.tar.g…

Django項目--登錄判斷裝飾器

view.py中定義登錄判斷裝飾器函數 def login_required(view_func):登錄判斷裝飾器def wrapper(request, *view_args, **view_kwargs):# 判斷用戶是否登錄if request.session.has_key(islogin):# 用戶已登錄,調用對應的視圖return view_func(request, *view_args, **view_kwarg…

Apple著手拋棄32位macOS應用程序

\看新聞很累&#xff1f;看技術新聞更累&#xff1f;試試下載InfoQ手機客戶端&#xff0c;每天上下班路上聽新聞&#xff0c;有趣還有料&#xff01;\\\Apple已經著手拋棄macOS上的32位應用程序了。macOS的下一個維護更新版本High Sierra 10.13.4將會在用戶打開32位應用程序時對…

HiveQL與SQL區別

1、Hive不支持等值連接 ?SQL中對兩表內聯可以寫成&#xff1a;?select * from dual a,dual b where a.key b.key;?Hive中應為?select * from dual a join dual b on a.key b.key; 而不是傳統的格式&#xff1a;SELECT t1.a1 as c1, t2.b1 as c2FROM t1, t2WHERE t1.a2 t…

Django項目--csrf攻擊

1.案例流程圖&#xff1a; 2.django防止csrf的方式&#xff1a; 1 ) Django中默認打開csrf中間件。settings.py文件中&#xff1a; MIDDLEWARE_CLASSES (django.contrib.sessions.middleware.SessionMiddleware,django.middleware.common.CommonMiddleware,django.middlewar…

數據庫管理系統與數據庫系統

數據庫&#xff1a;容納數據的倉庫。數據庫系統&#xff1a;數據庫、數據庫管理系統、硬件、操作人員的合在一起的總稱。數據庫管理系統&#xff1a;用來管理數據及數據庫的系統。數據庫系統包含數據庫管理系統、數據庫及數據庫開發工具所開發的軟件&#xff08;數據庫應用系統…

如果你扯了團隊后腿,你應該內疚

現在&#xff0c;我看到很多人扯了團隊的后腿&#xff0c;一句道歉就了事&#xff0c;更甚者就以另一種方式來表達&#xff1a;你們沒有給我足夠的培訓&#xff0c;你們的工作方式我無法接受&#xff0c;我工資太低&#xff0c;你們做的事情不夠酷&#xff0c;你們做的事情不賺…

mysql count(*),count(1)與count(column)區別

2019獨角獸企業重金招聘Python工程師標準>>> count(*)對行的數目進行計算&#xff0c;包含NULL count(column)對特定的列的值具有的行數進行計算&#xff0c;不包含NULL值。 count()還有一種使用方式&#xff0c;count(1)這個用法和count(*)的結果是一樣的。 性能問…

Java IO API記錄

文件路徑&#xff1a; public static final String FILEPATH File.separator"Users" File.separator"xuminzhe"File.separator"Documents"File.separator"io"; 1.創建文件 public static void main(String[] args) {File filenew File…

Flask項目--預防csrf攻擊原理

1.CSRF機制原理 2.csrf成功攻擊示意圖 3.csrf防御