如何将事件对象发送到处理程序?

时间:2015-08-20 12:13:05

标签: javascript

我正在迭代一系列输入,并将一个事件处理程序添加到" oninput"事件:

gulp.task('clean:semantic', function(cb) {
    del(['assets/semantic'], cb);
});

事件处理程序:

var inputs = document.getElementsByClassName('form-control');                                                                                          
Arr.forEach.call(inputs, function(input) {                                                    
                          input.oninput = _onInputEvent;
});

在e.target属性中 - 我按预期获得function _onInputEvent(e) { }

我已将上述内容改为:

"input.form-control"

但是现在在e.target属性中(在事件处理程序上) - 我得到var inputs = document.getElementsByClassName('form-control'); Arr.forEach.call(inputs, function(input) { input.oninput = _onInputEvent(event); }); 对象。

为什么?为了在e.target属性中获取"document",我应该传递什么?

1 个答案:

答案 0 :(得分:0)

当您使用_onInputEvent(event)并将函数返回的值绑定到oninput事件处理程序时,您正在调用时收到错误。

您可以使用匿名函数绑定事件。

脚本

var inputs = document.getElementsByClassName('form-control');                                                                                          
Arr.forEach.call(inputs, function(input) {                                                    
      input.oninput = function(event){
            _onInputEvent(event, someParameters);
      }                           
});