JavaScript 批量註冊事件處理函式
本文分享一段程式碼例項,實現了點選按鈕實現元素展開與收縮效果。
此程式碼並沒有手動挨個為元素註冊事件處理函式,而是通過批量自動完成。
程式碼例項如下:
[HTML] 純文字檢視 複製程式碼執行程式碼<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name="author" content="http://www.softwhy.com/" /> <title>螞蟻部落</title> <style> *{ margin:0; padding:0; } h1{ font:125% Arial, Helvetica, sans-serif; text-align:left; font-weight:bolder; background:#333; padding:3px; display:block; color:#99CC00 } .box{ width:40%; background:#CCC; position:relative; margin:0 auto; padding:5px; } span{ position:absolute; right:10px; top:8px; cursor:pointer; color:yellow; } p{ text-align:left; line-height:20px; height:300px; overflow:hidden; background:#333; padding:3px; margin-top:5px; color:#99CC00 } </style> <script> function $(element){ return element = document.getElementById(element); } function zhankai(p){ var h=p.offsetHeight; var maxh=300; function dmove(){ h+=50; //設定層展開的速度 if(h>=maxh){ p.style.height='300px'; clearInterval(iIntervalId); } else{ p.style.display='block'; p.style.height=h+'px'; } } iIntervalId=setInterval(dmove,2); } function shousuo(p){ var h=p.offsetHeight; var maxh=300; function dmove(){ h-=50;//設定層收縮的速度 if(h<=0){ p.style.display='none'; clearInterval(iIntervalId); }else{ p.style.height=h+'px'; } } iIntervalId=setInterval(dmove,2); } function $use(p,span){ if(p.style.display=='none'){ zhankai(p); span.innerHTML='收縮'; }else{ shousuo(p); span.innerHTML='展開'; } } window.onload=function(){ let boxs=document.querySelectorAll(".box"); for(let index=0;index<boxs.length;index++){ let ospan=boxs[index].querySelector("span"); let op=boxs[index].querySelector("p"); ospan.onclick=function(){ $use(op,ospan) } } } </script> </head> <body> <div class="box"> <h1>DIV層的展開隱藏效果</h1> <span>展開</span> <p></p> </div> <div class="box"> <h1>DIV層的展開隱藏效果</h1> <span>展開</span> <p></p> </div> </body> </html>
程式碼為span元素批量註冊click事件處理函式。
實現點選span元素,對應p元素展開和收縮效果。
相關文章
- JavaScript 註冊事件處理函式JavaScript事件函式
- javascript批量註冊事件處理函式程式碼例項JavaScript事件函式
- for迴圈批量註冊事件處理函式事件函式
- js如何批量註冊事件處理函式JS事件函式
- javascript如何移除註冊的事件處理函式JavaScript事件函式
- js批量註冊事件處理函式程式碼例項JS事件函式
- 使用for語句批量註冊事件處理函式程式碼例項事件函式
- javascript刪除註冊的事件處理函式簡單介紹JavaScript事件函式
- attachEvent()註冊事件處理函式this指向問題事件函式
- js刪除註冊的事件處理函式JS事件函式
- jQuery如何解綁註冊的事件處理函式jQuery事件函式
- 如何為新增的元素註冊事件處理函式事件函式
- 批量註冊事件處理函式索引總是最後一個問題解決事件函式索引
- js為按鈕註冊點選事件處理函式JS事件函式
- jquery為動態新增元素註冊事件處理函式jQuery事件函式
- jquery註冊事件處理函式常用的幾種方式jQuery事件函式
- js為物件註冊多個事件處理函式程式碼JS物件事件函式
- javascript事件處理函式迴圈批量繫結簡單介紹JavaScript事件函式
- jQuery為非同步載入的元素註冊事件處理函式jQuery非同步事件函式
- jQuery為動態新增的按鈕註冊事件處理函式jQuery事件函式
- 如何實現為window.onload註冊多個事件處理函式事件函式
- on()方法一次註冊多個事件處理函式程式碼例項事件函式
- JavaScript 事件處理函式傳遞引數JavaScript事件函式
- 批處理檔案(bat檔案)註冊dll批量註冊dllBAT
- jQuery能夠為一個元素註冊多個相同事件處理函式jQuery事件函式
- 如何判斷元素上是否已經註冊指定型別事件處理函式型別事件函式
- JavaScript為事件處理函式傳遞引數JavaScript事件函式
- javascript如何給事件處理函式傳遞引數JavaScript事件函式
- javascript事件處理函式繫結簡單介紹JavaScript事件函式
- js動態新增一個按鈕並且註冊事件處理函式程式碼例項JS事件函式
- echarts 繫結事件處理函式Echarts事件函式
- 封裝javascript事件處理函式繫結和解綁程式碼封裝JavaScript事件函式
- JavaScript事件處理JavaScript事件
- 公共事件處理函式js庫事件函式JS
- javaScript事件(二)事件處理程式JavaScript事件
- onclick事件處理函式傳遞引數事件函式
- JavaScript 非同步函式的 Promisification 處理JavaScript非同步函式
- onerror事件處理函式返回false或者true的作用Error事件函式False