最好是簡單點,
js 怎么給多個div循環添加點擊事件
慕村1106498
2017-06-19 13:43:28
TA貢獻3條經驗 獲得超2個贊
window.onload?=?function(){
????var?aDiv?=?document.getElementByTagName("div");
????for(var?i=0;i<aDiv.length;i++){
????????aDiv[i].index?=?i;
????????aDiv[i].onclick?=?function(){
????????????...
????????}
????}
}TA貢獻3條經驗 獲得超0個贊
使用事件代理,比循環點擊的效率好很多,也更規范。
為li添加點擊事件如下:
<ul?id="todo-app"> ??<li?class="item">Walk?the?dog</li> ??<li?class="item">Pay?bills</li> ??<li?class="item">Make?dinner</li> ??<li?class="item">Code?for?one?hour</li> </ul>
第一種 使用循環:
document.addEventListener('DOMContentLoaded',?function()?{
??let?app?=?document.getElementById('todo-app');
??let?items?=?app.getElementsByClassName('item');
??//?給每個列表項添加事件監聽器
??for?(let?item?of?items)?{
????item.addEventListener('click',?function()?{
??????alert('you?clicked?on?item:?'?+?item.innerHTML);
????});
??}
});第二種 ?事件代理:
document.addEventListener('DOMContentLoaded',?function()?{
??let?app?=?document.getElementById('todo-app');
??//?給容器添加事件監聽器
??app.addEventListener('click',?function(e)?{
????if?(e.target?&&?e.target.nodeName?===?'LI')?{
??????let?item?=?e.target;
??????alert('you?clicked?on?item:?'?+?item.innerHTML);
????}
??});
});舉報