У меня есть функция, чтобы открыть всплывающее окно под названием «openPopup()». Всплывающее окно имеет две статические кнопки: Отмена и Подтверждение. Первым параметром функции openPopup() является содержимое всплывающего окна. Второй параметр - это функция обратного вызова, которая будет привязана к событию click-Event на кнопке отправки. Проблема: если функция обратного вызова имеет некоторые параметры, они не передаются в eventHandler. В данном примере это параметр «FormData»:JS - Передача аргументов через eventHandler
function showPopup(content, callback) {
// put content inside the popup
// add a class the the popup so that it's visible
document.getElementById("submit-btn").addEventListener('click', callback);
}
И это скрипт, который запускается после того, как пользователь нажимает на что-то:
formData = new FormData();
formData.append("before","popup"); // just as an example
showPopup("Hey, click me and I submit formData!>", function(formData) {
formData.append("value","test");
//submitting formData with Ajax...
});
«FormData» не определен, он не перешел через Eventhandler. Вместо этого формат теперь является mouseEvent. Как я могу изменить код, чтобы получить доступ к «formData» внутри функции обратного вызова?
спасибо! Это решило проблему! Но что, если я хочу передать более одного параметра? – Hustensaft
@ yzn-pku решение в этом случае, другое, что привязка лучше – guramidev