js DOM的事件常見操作實例詳解
本文實例講述了js DOM的事件常見操作。分享給大家供大家參考,具體如下:
一、JavaScript的組成
JavaScript基礎分為三個部分:
- ECMAScript:JavaScript的語法標準。包括變量、表達式、運算符、函數(shù)、if語句、for語句等。
- DOM:文檔對象模型,操作網(wǎng)頁上的元素的API。比如讓盒子移動、變色、輪播圖等。
- BOM:瀏覽器對象模型,操作瀏覽器部分功能的API。比如讓瀏覽器自動滾動。
二、事件
JS是以事件驅動為核心的一門語言。
事件的三要素
事件的三要素:事件源、事件、事件驅動程序
總結如下:
- 事件源:引發(fā)后續(xù)事件的html標簽。
- 事件:js已經(jīng)定義好了(見下圖)。
- 事件驅動程序:對樣式和html的操作。也就是DOM
代碼書寫步驟如下:(重要)
- (1)獲取事件源:
document.getElementById("box"); //類似與ios語言的 UIButton *adBtn = [UIButton buttonWithType:UIButtonTypeCustom];
- (2)綁定事件:
事件源box.事件onclick = function(){ 事件驅動程序 };
- (3)書寫事件驅動程序:關于DOM的操作
舉例:
<body> <div id="box1">123</div> <script type="text/javascript"> // 1、獲取事件源 var div = document.getElementById("box1"); // 2、綁定事件 div.onclick = function () { // 3、書寫事件驅動程序 alert("我是彈出的內容"); } </script> </body> //點擊123將彈出要顯示的內容
常用事件:
1、獲取事件源的方式(DOM節(jié)點的獲取)
var div1 = document.getElementById("box1"); //方式一:通過id獲取單個標簽 var arr1 = document.getElementsByTagName("div1"); //方式二:通過 標簽名 獲得 標簽數(shù)組,所以有s var arr2 = document.getElementsByClassName("hehe"); //方式三:通過 類名 獲得 標簽數(shù)組,所以有s
2、綁定事件的方式
方式一:直接綁定匿名函數(shù)
<div id="box1" >123</div> <script type="text/javascript"> var div1 = document.getElementById("box1"); //綁定事件的第一種方式 div1.onclick = function () { alert("我是彈出的內容"); } </script>
方式二:先單獨定義函數(shù),再綁定
<div id="box1" ></div> <script type="text/javascript"> var div1 = document.getElementById("box1"); //綁定事件的第二種方式 div1.onclick = fn; //注意,這里是fn,不是fn()。fn()指的是返回值。 //單獨定義函數(shù) function fn() { alert("我是彈出的內容"); } </script>
注意上方代碼的注釋。綁定的時候,是寫fn,不是寫fn()。fn代表的是整個函數(shù),而fn()代表的是返回值。
方式三:行內綁定
<!--行內綁定--> //注意第一行代碼,綁定時,是寫的"fn()",不是寫的"fn"。因為綁定的這段代碼不是寫在js代碼里的,而是被識別成了字符串。 <div id="box1" onclick="fn()"></div> <script type="text/javascript"> function fn() { alert("我是彈出的內容"); } </script>
3、事件驅動程序
<style> #box { width: 100px; height: 100px; background-color: pink; cursor: pointer; } </style> </head> <body> <div id="box" ></div> <script type="text/javascript"> var oDiv = document.getElementById("box"); //點擊鼠標時,原本粉色的div變大了,背景變紅了 oDiv.onclick = function () { oDiv.style.width = "200px"; //屬性值要寫引號 oDiv.style.height = "200px"; oDiv.style.backgroundColor = "red"; //屬性名是backgroundColor,不是background-Color } </script>
上方代碼的注意事項:
- 在js里寫屬性值時,要用引號
- 在js里寫屬性名時,是backgroundColor,不是CSS里面的background-Color。記得所有的像css屬性的text-*,line-*、backgroun-*等在js中都寫成駝峰
鼠標點擊變化顏色:
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> <style type="text/css"> .box{ /*class*/ width:100px; height:100px; background-color:green; } </style> </head> <body> <div class="box" id="box">alex</div> </body> <script type="text/javascript"> var oDiv = document.getElementById('box'); var isGreen =true; oDiv.onclick=function(){ console.log(oDiv.style); if (isGreen){ oDiv.style.backgroundColor='red'; isGreen=false; //通過改變isGreen的值來控制鼠標點擊的效果 }else{ oDiv.style.backgroundColor='green'; isGreen=true; } } </script> </html> /*一個鼠標點擊就是一個事件*/
onload事件
當頁面加載(文本和圖片)完畢的時候,觸發(fā)onload事件。
<script type="text/javascript"> window.onload = function () { console.log("完畢"); //等頁面加載完畢時,打印字符串 } </script>
效果:鼠標懸停發(fā)生事件,將鼠標放在圖片1上面變成了圖片2
<!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8"> <title></title> <script> //window.onload頁面加載完畢以后再執(zhí)行此代碼 window.onload = function () { //需求:鼠標放到img上,更換為另一張圖片,也就是修改路徑(src的值)。 //步驟: //1.獲取事件源 //2.綁定事件 //3.書寫事件驅動程序 //1.獲取事件源 var img = document.getElementById("box"); //2.綁定事件(懸停事件:鼠標進入到事件源中立即出發(fā)事件) img.onmouseover = function () { //3.書寫事件驅動程序(修改src) img.src = "2.jpg"; // this.src = "image/jd2.png"; }; } </script> </head> <body> <img id="box" src="1.jpg" style="cursor: pointer;border: 1px solid #ccc;"/> </body> </html>
感興趣的朋友可以使用在線HTML/CSS/JavaScript代碼運行工具:http://tools.jb51.net/code/HtmlJsRun測試上述代碼運行效果。
更多關于JavaScript相關內容感興趣的讀者可查看本站專題:《JavaScript操作DOM技巧總結》、《JavaScript頁面元素操作技巧總結》、《JavaScript事件相關操作與技巧大全》、《JavaScript查找算法技巧總結》、《JavaScript數(shù)據(jù)結構與算法技巧總結》、《JavaScript遍歷算法與技巧總結》及《JavaScript錯誤與調試技巧總結》
希望本文所述對大家JavaScript程序設計有所幫助。
相關文章
bootstrap-table.js擴展分頁工具欄(增加跳轉到xx頁)功能
這篇文章主要介紹了bootstrap-table.js擴展分頁工具欄,增加跳轉到xx頁功能,由于小編的水平停留在dom級,此次擴展只支持頁面上的表格,如果大家有好的建議歡迎提出2017-12-12使用insertAfter()方法在現(xiàn)有元素后添加一個新元素
為javascript添加insertAfter()方法即在現(xiàn)有元素后添加一個新元素,示例如下,大家不妨學習下2014-05-05jQuery?事件綁定及取消?bind?live?delegate?on?one區(qū)別解析
這篇文章主要介紹了jquery?事件綁定及取消?bind?live?delegate?on?one區(qū)別解析,本文給大家講解的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2022-11-11