我自己的JavaScript类和addeventlistener模板不起作用

阿斯伯格

因此,在这里我正在尝试使用本机javascript。我试图实现但未能做到的是为要向div类添加事件侦听器的场景创建某种快捷方式。

在这里,我想说的是:如果用户单击了某个班级,则显示警报。

为什么我的代码不起作用?

function click(red){
    var source = document.getElementsByClassName(red);
        for (i = 0; i < source.length; i++) {
            source[i].addEventListener('click', err, false);
        }
    function err() { 
    var x = 0;
    }
}

if (click('red')) {
    alert('rrr');
}

http://jsfiddle.net/y66wh26k/3/

463

我会使用document.querySelectorAll而不是document.getElementsByClassName因为它更加通用。

但主要问题是您的click函数实际上未返回任何内容,因此您if(click('red'))将永远无法执行。同样,您添加的事件侦听器的回调实际上并没有做任何事情。因此,我做了一个回调参数,然后将其传递给addEventListener

function click(selector, callback){
    var source = document.querySelectorAll(selector);
    for (var i = source.length-1; i >= 0; --i) {
        source[i].addEventListener('click', callback, false);
    }
}
click('.red', function() {
    alert('rrr');
});
<div class='red'>xxx</div>
<div class='red'>xxx</div>
<div class='red'>xxx</div>

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章