javascript的事件监听问题:函数怎么传递参数?

比如:
function aaa(int){
alert(int);

}

div.addEventListener("click", aaa(1), false);
这么写出了个问题,还没点击div,就执行了函数alert出了1,
但明明是添加的点击事件呀,点了才会触发函数才对,后来我发现函数不带参数就没事了,下面这样写就正常:
div.addEventListener("click", aaa, false);
但我想传递参数这个目的实现不了了,求解决

第1个回答  推荐于2017-05-20
div.addEventListener("click", function() {
aaa(1);

}, false)追问

可假如有好多div,每个div需带入不同参数以区分,这样肿么办?若每个监听都要写10多行重复的代码不是很不效率么……

追答

div.addEventListener("click", function() {
$(this)// 这个$(this)就是当前触发这个事件的div, 你可以判断这个div是哪一个, 然后传参数给aaa
aaa(1);

}, false)

追问

请再教下怎么判断获取的div是哪个?能给简单些个判断是哪个div的例子么~

追答



$('div.aa').click(function() {
var _this = this;

if (_this.hasClass('b')) {

*****

} else if (_this.hasClass('c')) {
***

}
****

});

本回答被网友采纳
相似回答