如何处理addEventListener和attachEvent冲突?

时间:2017-07-19 10:51:35

标签: javascript html events addeventlistener

我正在创建一个drop或click文件上传。我有一个问题处理点击和放大器之间的差异因为一个人使用addEventListener而另一个人使用普通的javascript方法。

HTML

<input id="imageLoader" type="file" name="imageLoader">

Javascript:

  var imageLoader = document.getElementById('imageLoader');

  /* console shows : ..change { 
    target: <input#imageLoader>, 
    isTrusted: true, 
    currentTarget: <input#imageLoader>, 
    eventPhas... } 
  */
  imageLoader.addEventListener('change', handleImage, false);

  /* console shows : undefined */
  imageLoader.onchange = function(){
    handleImage();
  };

  function handleImage(e){
    console.log(e);
  }

如何使用其他方式显示与addeventlistener方法相同的值?

1 个答案:

答案 0 :(得分:2)

实际上addEventListener接受一个回调函数,您可以在其中调用任何所需的代码。

因此,您不必直接将handleImage函数作为回调传递,而是可以创建一个调用handleImage函数的回调函数。

imageLoader.addEventListener('change', function(e){
     //do whatever you want here
     handleImage()
}, false);

要使用onchange附加活动,您可以使用相同的方法:

imageLoader.onchange = function(event) { 
    //do whatever you want here
    handleImage(event); 
};