JavaScript如何给HTML元素动态绑定onclick和hover事件?
JavaScript使用getElementsByClassName获取所有指定类名的HTML元素,然后使用for循环遍历逐个添加事件,这里要注意每个元素的事件是否存在共享数据的情况,普通添加事件的情形所有元素都会共享一个数据,若需要各自使用不同的数据,这时则需要使用闭包传值,达到每个元素都使用不同数据的目的。
【JavaScript如何给HTML元素动态绑定onclick和hover事件()】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);
}
效果如下:
文章图片
推荐阅读
- JavaScript如何获取URL查询参数的属性和值(有没有相应的插件支持?)
- JavaScript原型链和继承原理分析和实例详解(一)(原型和原型链)
- JS进阶之JavaScript闭包原理和应用实例详解
- 进阶!这一次彻底理解JavaScript的执行上下文(Execution Context)
- 在vue.js中使用Ajax发送get和post请求
- vue.js混入(minxins)的使用说明
- 由于应用BundleID信息校正不通过,无法分享到微信的问题——已解决
- 关于Sign in with the app-specific password you generated 两步解决
- 谈谈JavaScript如何优化构造函数和对象创建