for迴圈批量註冊事件處理函式
如果需要註冊事件處理函式的元素數量過多,一個一個的註冊將會是一件非常龐大的任務。
批量註冊將會極大的減少工作量,下面通過例項程式碼介紹一下如何利用for語句實現。
程式碼例項如下:
[HTML] 純文字檢視 複製程式碼執行程式碼<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name="author" content="http://www.softwhy.com/" /> <title>螞蟻部落</title> <script type="text/javascript"> window.onload=function(){ var obox=document.getElementById("box"); var lis=obox.getElementsByTagName("li"); for(var i=0;i<lis.length;i++){ lis[i].index=i; lis[i].onclick = function () { alert(this.index) } } } </script> </head> <body> <ul id="box"> <li>螞蟻部落一</li> <li>螞蟻部落二</li> <li>螞蟻部落三</li> <li>螞蟻部落四</li> </ul> </body> </html>
使用for為每個li元素註冊click事件處理函式,當點選li元素的時候,彈出當前li元素索引值,特別注意的是,之所以將變數i賦值給自定義的屬性index,而不是直接alert(i),是因為,for迴圈執行完畢之後,i的值就變成了li元素的數量,li[ i ]也就會報錯。
使用閉包的方式實現此功能,程式碼例項如下:
[HTML] 純文字檢視 複製程式碼執行程式碼<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name="author" content="http://www.softwhy.com/" /> <title>螞蟻部落</title> <script type="text/javascript"> window.onload=function() { var obox=document.getElementById("box"); var lis=obox.getElementsByTagName("li"); for(var i=0;i<lis.length;i++) { lis[i].onclick=(function(i){ return function(){alert(i)} })(i) } } </script> </head> <body> <ul id="box"> <li>螞蟻部落一</li> <li>螞蟻部落二</li> <li>螞蟻部落三</li> <li>螞蟻部落四</li> </ul> </body> </html>
以上程式碼實現了同樣的功能,這裡就不多介紹了,可以參閱相關閱讀。
相關閱讀:
(1).getElementsByTagName()參閱document.getElementsByTagName()一章節。
(2).閉包可以參閱JavaScript 閉包一章節。
相關文章
- JavaScript 批量註冊事件處理函式JavaScript事件函式
- JavaScript 註冊事件處理函式JavaScript事件函式
- echarts 繫結事件處理函式Echarts事件函式
- JavaScript中的事件迴圈機制跟函式柯里化JavaScript事件函式
- JavaScript為事件處理函式傳遞引數JavaScript事件函式
- 事件迴圈事件
- 【譯】理解Javascript函式執行—呼叫棧、事件迴圈、任務等JavaScript函式事件
- 如何使用 controllerExtensions 給 SAP Fiori Elements 表格註冊事件響應函式Controller事件函式
- PyThon range()函式中for迴圈用法Python函式
- JS事件迴圈JS事件
- nodejs事件迴圈NodeJS事件
- libuv事件迴圈事件
- 正規表示式處理批量插入
- Spring Ioc原始碼分析系列--Ioc容器註冊BeanPostProcessor後置處理器以及事件訊息處理Spring原始碼Bean事件
- 迴圈_推導式_繪製棋盤_函式函式
- js 註冊事件的兩種方式詳解,傳統註冊事件與方法監聽註冊事件(addEventListener)JS事件dev
- 事件迴圈詳解事件
- 事件迴圈(event loop)事件OOP
- 瀏覽器中的事件流和node中處理時間迴圈的分析瀏覽器事件
- 批量註冊歸檔日誌
- 陣列處理函式陣列函式
- [譯]深入理解JavaScript函式執行—呼叫棧,事件迴圈和任務等JavaScript函式事件
- R中的迴圈多圖處理技巧
- 插入式註解處理器
- [譯] 事件迴圈中microtask和macrotask的不同之處事件Mac
- nodejs事件和事件迴圈詳解NodeJS事件
- nodejs事件和事件迴圈簡介NodeJS事件
- Nacos - 服務端處理註冊請求服務端
- 事件註冊與事件代理學習事件
- Swoole 回撥函式的註冊與呼叫函式
- JavaScript事件迴圈(Event Loop)JavaScript事件OOP
- JavaScript 事件迴圈機制JavaScript事件
- JavaScript-事件迴圈-eventLoopJavaScript事件OOP
- Node中的事件迴圈事件
- 剖析nodejs的事件迴圈NodeJS事件
- 聊聊Javascript的事件迴圈JavaScript事件
- Redis 中的事件迴圈Redis事件
- Javascript 事件迴圈event loopJavaScript事件OOP