我有以下代码:jQuery变量作用域?说未定义
function postToDrupal(contacts, source, owner) {
(function ($) {
var contact, name, email, entry;
emails = {};
for (var i = 0; i < contacts.length; i++) {
contact = contacts[i];
emails[i]['name'] = contact.fullName();
emails[i]['email'] = contact.selectedEmail();
}
$.post("/cloudsponge-post",emails,function(data) {
});
}(jQuery));
}
我收到以下错误,当我尝试并运行它:
WARN: Attempt to invoke callback [afterSubmitContacts] failed: TypeError: Cannot set property 'name' of undefined
我不知道这个问题是 - 什么我很新的JS和发现它有点棘手。它破裂的原因是什么,我该如何解决它?
您的电子邮件在一个对象中,而不是一个数组,所以电子邮件[i]是未定义的。你也忘了它之前的变种。 – Virus721
我记得在设置对象属性之前被迫做= {},所以我认为它是相同的数组。 – Virus721
请注意,如果我问为什么直接在函数中使用IIFE?该函数创建它自己的范围。它是否与使用'$'变量的Drupal相关? – Jasper