js如何批量註冊事件處理函式

admin發表於2017-03-14

有時候一些元素事件都是類似的,甚至可以說是相同的,如果能夠批量註冊事件處理函式那就方便多了。

先看一段程式碼例項:

[HTML] 純文字檢視 複製程式碼
<!DOCTYPE html>
<html>
<head>
<meta charset=" utf-8">
<meta name="author" content="http://www.softwhy.com/" /> 
<title>批量註冊事件處理函式-螞蟻部落</title>
<style type="text/css">
#thediv{color:red}
ul{
  list-style:none;
  font-size:12px;
  line-height:30px;
  height:30px;
  cursor:pointer;
}
</style>
<script type="text/javascript">
window.onload=function(){
  var lis=document.getElementsByTagName("li");
  var thediv=document.getElementById("thediv");
  for(var i=0;i<lis.length;i++){
    lis[i].index=i;
    lis[i].onclick = function (){
      thediv.innerHTML="點選的li的索引值是:"+this.index;
    }
  }
}
</script>
</head>
<body>
<div id="thediv"></div>
<ul>
  <li>螞蟻部落一</li>
  <li>螞蟻部落二</li>
  <li>螞蟻部落三</li>
  <li>螞蟻部落四</li>
  <li>螞蟻部落五</li>
</ul>
</body>
</html>

以上程式碼實現了事件處理函式批量註冊效果,非常的簡單,就是用for迴圈遍歷每一個li元素,然後為它們註冊事件處理函式。當點選每一個li元素的時候能夠將當前li元素的自定義index屬性值寫入指定的div。

相關文章