原生html绑定onclick事件,JavaScript如何给HTML元素动态绑定onclick和hover事件?

JavaScript如何给HTML元素动态绑定onclick和hover事件?

JavaScript使用getElementsByClassName获取所有指定类名的HTML元素,然后使用for循环遍历逐个添加事件,这里要注意每个元素的事件是否存在共享数据的情况,普通添加事件的情形所有元素都会共享一个数据,若需要各自使用不同的数据,这时则需要使用闭包传值,达到每个元素都使用不同数据的目的。

1、动态绑定onclick事件:

var items = document.getElementsByClassName("item");

// 动态绑定onclick事件

// 使用for循环遍历,注意要使用立即执行函数和闭包才能生效

for(var i = 0;i < items.length;i++){

(function(j){

items[j].onclick = function(){

console.log("click: " + j);

}

})(i);

}

2、动态添加hover事件:

// 动态绑定hover事件

for(var i = 0;i < items.length;i++){

(function(j){

items[j].onmouseover = function(){

this.style.color = "#ffe573";

};

items[j].onmouseout = function(){

this.style.color = "#fff";

};

})(i);

}

效果如下:

eea7ebfa7d1b5fdd8bcfd30186b6ab44.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值