【问题标题】:How to add another parameter in for the function in addlistenerevent in addition to the event?addlistener 事件中除了事件之外,如何为函数添加另一个参数?
【发布时间】:2016-12-21 09:35:42
【问题描述】:

我使用的 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

【问题讨论】:

    标签: javascript dom-events addeventlistener


    【解决方案1】:

    这样

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

    【讨论】:

    • 这正是我想要的!
    【解决方案2】:

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

    function init(){
        fileselect.addEventListener("change", 
                                     callback,
                                    ,false);
    }
    
    function callback() {
       fileSelectHandler(arguments[0],a,b)
    }
    

    由于addEventListener的第二个参数是回调函数,当触发'change'事件时,会调用回调函数,参数如下:

    callback(event);
    

    【讨论】:

      【解决方案3】:

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

      function fileSelectHandler(a, b, e) {
          fileDragHover(e, a, b);
          // some more code
      }
      
      fileselect.addEventListener("change"
      , fileSelectHandler.bind(fileselect, a, b), false);
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-10-22
        • 1970-01-01
        • 2016-01-12
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多