除了事件之外,如何为addlistenerevent中的函数添加另一个参数?

时间:2016-08-15 07:08:44

标签: javascript javascript-events addeventlistener

我正在使用JavaScript函数,如下所示: -

function fileSelectHandler(e) {
    fileDragHover(e);
    // some more code
}

function init(){
    fileselect.addEventListener("change", fileSelectHandler, false);
}

现在我想在侦听器函数中使用另一个参数。我知道我可以通过以下方式添加多个参数。

function init(){
    fileselect.addEventListener("change", function(){
        fileSelectHandler(a, b)
    }, false);
}

但是如何以这种方式传递e

3 个答案:

答案 0 :(得分:2)

喜欢这个

function init(){
    fileselect.addEventListener("change", function(e){
       fileSelectHandler(e,a,b);
    }, false);
}

答案 1 :(得分:1)

Suren Srapyan是对的,你可以这样做:

function init(){
    fileselect.addEventListener("change", 
                                 callback,
                                ,false);
}

function callback() {
   fileSelectHandler(arguments[0],a,b)
}

由于addEventListener的第二个参数是回调函数,当'更改'事件触发后,将使用如下参数调用回调函数:

callback(event);

答案 2 :(得分:1)

您可以使用Function.prototype.bind()

function fileSelectHandler(a, b, e) {
    fileDragHover(e, a, b);
    // some more code
}

fileselect.addEventListener("change"
, fileSelectHandler.bind(fileselect, a, b), false);