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事件函式
- for迴圈批量註冊事件處理函式事件函式
- JavaScript為事件處理函式傳遞引數JavaScript事件函式
- echarts 繫結事件處理函式Echarts事件函式
- JavaScript事件處理JavaScript事件
- JavaScript 非同步函式的 Promisification 處理JavaScript非同步函式
- 如何使用 controllerExtensions 給 SAP Fiori Elements 表格註冊事件響應函式Controller事件函式
- 在javascript中使用純函式處理副作用JavaScript函式
- [譯] 如何使用純函式式 JavaScript 處理髒副作用函式JavaScript
- 正規表示式處理批量插入
- Spring Ioc原始碼分析系列--Ioc容器註冊BeanPostProcessor後置處理器以及事件訊息處理Spring原始碼Bean事件
- js 註冊事件的兩種方式詳解,傳統註冊事件與方法監聽註冊事件(addEventListener)JS事件dev
- 批量註冊歸檔日誌
- 陣列處理函式陣列函式
- 插入式註解處理器
- Nacos - 服務端處理註冊請求服務端
- 事件註冊與事件代理學習事件
- Swoole 回撥函式的註冊與呼叫函式
- JavaScript和JQuery的滑鼠mouse事件冒泡處理JavaScriptjQuery事件
- SpringBatch批量處理策略SpringBAT
- 在c中,怎麼註冊回撥函式函式
- 事件處理事件
- Flink處理函式實戰之四:視窗處理函式
- Sanic 處理函式修飾器函式
- mongoDB中聚合函式java處理MongoDB函式Java
- C語言之字串處理函式C語言字串函式
- 事件處理函式中, e.stopPropagation()能放在 onChangeColor()後邊執行嗎?事件函式
- Python批量處理圖片Python
- Flink處理函式實戰之五:CoProcessFunction(雙流處理)函式Function
- 如何使用原生的 JavaScript 程式碼,觸發 SAP UI5 按鈕控制元件的點選事件處理函式JavaScriptUI控制元件事件函式
- 好程式設計師分享React-010-事件處理函式的this指向問題程式設計師React事件函式
- React事件處理React事件
- vue事件處理Vue事件
- JavaSwing 事件處理Java事件
- Flutter | 事件處理Flutter事件
- 六、函式、包和錯誤處理函式
- Presto 標量函式註冊和呼叫過程簡述REST函式
- 公司寶商標註冊|OPPO註冊OCAR商標被駁回,商標駁回處理方法