这是缺少半冒号或大括号或其他东西,我找不到在哪里或如何。
有关如何调试此类问题的任何建议都会有所帮助。我在线上添加了一个firebug告诉我,它仍然没有用,也没有意义。
$(document).ready(function () {
$('#go').click(function () {
$.ajax({
type: 'POST',
data: $('#newsletter').serialize(),
url: $('#newsletter').attr('action'),
success: function()
{
$('#thankYou').show(1000,setTimeout(
function(){
$('#thankYou').hide()
})
,3000);
};
});
return false;
});
});
它仍显示此语法错误
function()
{
$('#thankYou').show(1000,setTimeout(
function(){
$('#thankYou').hide()
})
,3000);
}
答案 0 :(得分:6)
你应该在这些功能上做更多的嵌套,它可能会帮助你将来弄明白。这里的代码更加缩进:
$(document).ready(function() {
$('#go').click(function() {
$.ajax({
type: 'POST',
data: $('#newsletter').serialize(),
url: $('#newsletter').attr('action'),
success: function() {
$('#thankYou').show(1000, setTimeout(function() {
$('#thankYou').hide();
}), 3000);
};
});
return false;
});
});
问题是';'在成功函数声明之后。
答案 1 :(得分:5)
下面:
,3000);
}; //<-- that should not have a semicolon
答案 2 :(得分:1)
看起来像3个问题:
show()
语法。setTimeout()
语法。这应该有用; See it in action at jsFiddle。 :
$(document).ready ( function () {
$('#go').click ( function () {
$.ajax ( {
type: 'POST',
data: $('#newsletter').serialize (),
url: $('#newsletter').attr ('action'),
success: function () {
$('#thankYou').show (
1000,
function () {
setTimeout ( function() { $('#thankYou').hide(); }, 3000);
}
);
}
} );
return false;
} );
} )
PS:为了展示和隐藏,jQuery提供了:
success: function () {
$('#thankYou').show (400).delay (2500). hide (400);
}
(“我们不需要发臭的setTimeout。”)