У меня есть форму, и я добавляю addEventListener()
к форме. Я хотел вызвать функцию из addEventListener()
, но я получаю Uncaught TypeError
при вызове функции.Вызов функции из addEventListener
Код 1
$(document).ready(function(){
function uploadFile(){
alert("comes here");
}
uploadForm.addEventListener('submit', function(e) {
var uploadFile = document.getElementById('upload-file').files;
e.preventDefault();
uploadFile();
});
});
Но если изменить код выше для
кодекса 2
$(document).ready(function(){
var test = function uploadFile(){
alert("comes here");
}
uploadForm.addEventListener('submit', function(e) {
var uploadFile = document.getElementById('upload-file').files;
e.preventDefault();
test();
});
});
Он работает. Я хочу знать, почему. Возможно, это связано с областью. Но из всего, что я знаю, я думаю, что функция (uploadFile()
) и ссылка на функцию (test
) имеют одинаковую область действия.
Я сам программист, поэтому я не знаю, что делать с Google, чтобы понять, почему это происходит. Ближайший я получил this, function naming
В качестве ответа я просто ищу некоторые термины, которые я могу понять, почему это происходит.
Это звучит странно, вы должны иметь возможность вызывать 'uploadFile' из первого фрагмента и' test() 'из второго фрагмента. Но для тех, кто хочет увидеть его в действии, https://jsfiddle.net/mendesjuan/e9sa1jLc/ –
как работает код 2? – nAviD
@JuanMendes Приносим извинения за создание jsfiddle.Это была глупая ошибка с моей стороны. –