[英]Passing arguments to callback functions
觸發eventListener時如何將參數傳遞給箭頭函數?
// Name of certificate
let certificateName = document.querySelector('.js--c-name').value;
// Call upload function
currentFileInput.addEventListener('change', fileUpload , false);
const fileUpload = (certificateName) = (evt) => {
// Here I need the parameter certificateName for testing
console.log(`Name of Certificate: #{certificateName}`);
// Function stuff...
let myFile = evt.target.files[0],
maxFileSize = evt.target.getAttribute('data-fileSizeMax');
// Check filesize
if(myFile.size <= maxFileSize){
// etc.
}
}
使您的fileUpload
返回內部函數
const fileUpload = (certificateName) => (evt) => {
console.log(`Name of Certificate: #{certificateName}`);
let myFile = evt.target.files[0],
maxFileSize = evt.target.getAttribute('data-fileSizeMax');
if(myFile.size <= maxFileSize){
// etc.
}
}
您需要調用fileUpload
函數並傳遞certificateName
。
currentFileInput.addEventListener('change', fileUpload(certificateName), false);
您需要將函數調用包裝在另一個函數中
let certificateName = document.querySelector('.js--c-name').value;
currentFileInput.addEventListener('change', function(e){
fileUpload(e, certificateName ); //observe changes in this line
}, false);
const fileUpload = (evt, certificateName) => { //pass the arguments
//rest of your code as is
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.