The error in the title of the post came from jQuery version 1.10.2, line 637
我有一个模式,弹出按钮单击一些文本框,当单击模式中的按钮时,文本框中的信息将通过AJAX添加到数据库中。为了使页面更加用户友好,我添加了一个setTimeout函数来暂停隐藏模态,以便用户可以看到数据已添加到数据库的验证消息。我的代码块1将记录添加到数据库,但是setTimeout调用不能正常工作:
function insert(data) {
data = JSON.stringify(data);
$.ajax({
type: "POST",
url: "../Service.asmx/InsertPerson",
dataType: "json",
contentType: "application/json",
data: data,
//record gets added to the database
//something about the setTimeout function
//that gives the error in the title
success: function () {
console.log('success before setTimeout');
var successMessage = $('<div>').text('Successfully added to the database...').css('color', 'green');
$('.modal-body').append(successMessage);
//*******this function doesn't run
window.setTimeout(function () {
$('#contact').modal('hide');
$('.modal-body input').each(function () {
$(this).val('');
}, 1000);
});
}
});
}
我使用代码修复它: (成功功能是我们需要注意的)
function insert(data) {
data = JSON.stringify(data);
$.ajax({
type: "POST",
url: "../Service.asmx/InsertPerson",
dataType: "json",
contentType: "application/json",
data: data,
//record gets added to the database
success: function () {
console.log('success before setTimeout');
var successMessage = $('<div>').text('Successfully added to the database...').css('color', 'green');
$('.modal-body').append(successMessage);
window.setTimeout(function () {
$('.modal-body input').each(function () {
$(this).val('');
});
$('#contact').modal('hide');
}, 1000);
}
});
}
我看到我在第一个块中没有关闭each
函数,我在第二个块中修复了这个问题,这就是为什么它可以工作,但为了将来参考,这个错误真的意味着什么这个背景?
答案 0 :(得分:2)
这意味着您将第二个参数留给了setTimeout
,而是将其作为第二个参数传递给.each()
。
编辑 - 看起来jQuery正在拾取参数(1000
)并尝试将其传递给其内部each
实现。 .apply()
函数希望它是一个数组。