【发布时间】:2016-01-07 02:15:22
【问题描述】:
我有一个函数可以打开一个名为“openPopup()”的弹出窗口。弹出窗口有两个静态按钮:取消和提交。 openPopup() 函数的第一个参数是弹出窗口的内容。第二个参数是一个回调函数,它将绑定到提交按钮上的点击事件。问题:如果回调函数有一些参数,它们不会传递给 eventHandler。在示例中是参数“formData”:
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”不是未定义的,它没有通过事件处理程序传递。相反,格式现在是 mouseEvent。 如何更改代码以便可以访问回调函数中的“formData”?
【问题讨论】:
标签: javascript events callback event-handling parameter-passing