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事件函式
- js如何批量註冊事件處理函式JS事件函式
- js批量註冊事件處理函式程式碼例項JS事件函式
- javascript批量註冊事件處理函式程式碼例項JavaScript事件函式
- JavaScript 註冊事件處理函式JavaScript事件函式
- javascript事件處理函式迴圈批量繫結簡單介紹JavaScript事件函式
- 使用for語句批量註冊事件處理函式程式碼例項事件函式
- javascript如何移除註冊的事件處理函式JavaScript事件函式
- attachEvent()註冊事件處理函式this指向問題事件函式
- js刪除註冊的事件處理函式JS事件函式
- jQuery如何解綁註冊的事件處理函式jQuery事件函式
- 如何為新增的元素註冊事件處理函式事件函式
- 批量註冊事件處理函式索引總是最後一個問題解決事件函式索引
- js為按鈕註冊點選事件處理函式JS事件函式
- jquery為動態新增元素註冊事件處理函式jQuery事件函式
- jquery註冊事件處理函式常用的幾種方式jQuery事件函式
- 使用for迴圈批量註冊的事件不能正確獲取索引值事件索引
- js為物件註冊多個事件處理函式程式碼JS物件事件函式
- javascript刪除註冊的事件處理函式簡單介紹JavaScript事件函式
- jQuery為非同步載入的元素註冊事件處理函式jQuery非同步事件函式
- jQuery為動態新增的按鈕註冊事件處理函式jQuery事件函式
- 迴圈註冊事件的幾種寫法事件
- 如何實現為window.onload註冊多個事件處理函式事件函式
- on()方法一次註冊多個事件處理函式程式碼例項事件函式
- 批處理檔案(bat檔案)註冊dll批量註冊dllBAT
- jQuery能夠為一個元素註冊多個相同事件處理函式jQuery事件函式
- 如何判斷元素上是否已經註冊指定型別事件處理函式型別事件函式
- 為什麼用for迴圈繫結的事件處理函式只有最後一個有效事件函式
- js動態新增一個按鈕並且註冊事件處理函式程式碼例項JS事件函式
- echarts 繫結事件處理函式Echarts事件函式
- 公共事件處理函式js庫事件函式JS
- 迴圈取值並處理示例
- 事件迴圈事件
- JavaScript中的事件迴圈機制跟函式柯里化JavaScript事件函式
- JavaScript 事件處理函式傳遞引數JavaScript事件函式
- onclick事件處理函式傳遞引數事件函式
- matlab用迴圈批量生成多個變數,神奇的eval()函式Matlab變數函式
- windows批處理之三:for迴圈Windows