缺少{在参数列表之后

时间:2011-07-16 18:48:32

标签: jquery

这是缺少半冒号或大括号或其他东西,我找不到在哪里或如何。

有关如何调试此类问题的任何建议都会有所帮助。我在线上添加了一个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);


                    }

3 个答案:

答案 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个问题:

  1. 额外的分号。
  2. show()语法。
  3. setTimeout()语法。
  4. 这应该有用; 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。”)