1

我在这里有这段代码:

在阅读之前,大部分代码与问题无关,但如果可能的话,它可能会让我更容易理解我正在尝试做的事情。

    $(document).ready(function(){

        AnimateRotate(360, "#box", 0)
        $("#box").animate({   

            top: ((sheight/2)-282)+"px",
            left: ((swidth/2)-307)+"px",
            width: "350px",
            height: "200px"



        }, 2000, function(){

                $('<div>', { id: 'details' }).appendTo('#box').fadeIn(1500)

                $('<input />',{ "class" : "name" }).appendTo("#box").fadeIn(1500)
                $('.name').val($('.name').val() + 'Enter Name here');

                $('<input />',{ "class" : "numb" }).appendTo("#box").fadeIn(1500)
                $('.numb').val($('.numb').val() + 'Enter Age here');

                $('<input type="button" value="Submit">').fadeIn(1500).appendTo(this)   
            .click(function(){ 

                $(this).remove();

                num = $("#box").find(".numb").val();
                nam = $("#box").find(".name").val();

                $("#box").find(".numb").remove();
                $("#box").find(".name").remove();
                $("#details").remove();

                AnimateRotate(-360, "#box", 0)

                $("#box").animate({  

                    top: "150px",
                    left: "100px",
                    width:"0px",
                    height: "0px",
                    padding:"0px"


                    }, 2000, function(){


                        //AnimateRotate(360, "#box", 2000)

                        if (num>0 && num<110 && /^\D+$/.test(nam)) {



                            $("#box").delay(2000).animate({  

                                top: "0px",
                                left: "0px",
                                width: (swidth-100)+"px",
                                height: (sheight-100)+"px",
                                padding: "20px",
                                margin: "20px"



                            }, 2000, function(){


                                $("#box").append('<span class="title">BizAppliance</span>')
                                $('<div>', { id: 'info' }).appendTo('#box')
                                $("#info").append('<span class="num">' + nam + '</span>')
                                $("#info").append('<span class="num"> is </span>')
                                $("#info").append('<span class="num">' + num + '</span>')
                                $("#info").append('<span class="num"> years old</span>')



                            });

                        }else{

                            //GO BACK TO WHERE IT SAYS DOCUMENT.READY()

                        }


                    });


            });
        });


    });

在我的代码底部,您将看到一个 else 语句,如果输入不正确,我希望代码重新启动。有没有办法告诉javascript回到它说'document.ready()'的地方?

感谢您的任何回答。

4

2 回答 2

2

我只是将处理程序作为一个单独的函数取出,它会起作用。

使用此代码 -

$(document).ready(run);

function run() {
    AnimateRotate(360, "#box", 0)
    $("#box")
            .animate(
                    {

                        top : ((sheight / 2) - 282) + "px",
                        left : ((swidth / 2) - 307) + "px",
                        width : "350px",
                        height : "200px"

                    },
                    2000,
                    function() {

                        $('<div>', {
                            id : 'details'
                        }).appendTo('#box').fadeIn(1500)

                        $('<input />', {
                            "class" : "name"
                        }).appendTo("#box").fadeIn(1500)
                        $('.name').val($('.name').val() + 'Enter Name here');

                        $('<input />', {
                            "class" : "numb"
                        }).appendTo("#box").fadeIn(1500)
                        $('.numb').val($('.numb').val() + 'Enter Age here');

                        $('<input type="button" value="Submit">')
                                .fadeIn(1500)
                                .appendTo(this)
                                .click(
                                        function() {

                                            $(this).remove();

                                            num = $("#box").find(".numb").val();
                                            nam = $("#box").find(".name").val();

                                            $("#box").find(".numb").remove();
                                            $("#box").find(".name").remove();
                                            $("#details").remove();

                                            AnimateRotate(-360, "#box", 0)

                                            $("#box")
                                                    .animate(
                                                            {

                                                                top : "150px",
                                                                left : "100px",
                                                                width : "0px",
                                                                height : "0px",
                                                                padding : "0px"

                                                            },
                                                            2000,
                                                            function() {

                                                                // AnimateRotate(360,
                                                                // "#box",
                                                                // 2000)

                                                                if (num > 0
                                                                        && num < 110
                                                                        && /^\D+$/
                                                                                .test(nam)) {

                                                                    $("#box")
                                                                            .delay(
                                                                                    2000)
                                                                            .animate(
                                                                                    {

                                                                                        top : "0px",
                                                                                        left : "0px",
                                                                                        width : (swidth - 100)
                                                                                                + "px",
                                                                                        height : (sheight - 100)
                                                                                                + "px",
                                                                                        padding : "20px",
                                                                                        margin : "20px"

                                                                                    },
                                                                                    2000,
                                                                                    function() {

                                                                                        $(
                                                                                                "#box")
                                                                                                .append(
                                                                                                        '<span class="title">BizAppliance</span>')
                                                                                        $(
                                                                                                '<div>',
                                                                                                {
                                                                                                    id : 'info'
                                                                                                })
                                                                                                .appendTo(
                                                                                                        '#box')
                                                                                        $(
                                                                                                "#info")
                                                                                                .append(
                                                                                                        '<span class="num">'
                                                                                                                + nam
                                                                                                                + '</span>')
                                                                                        $(
                                                                                                "#info")
                                                                                                .append(
                                                                                                        '<span class="num"> is </span>')
                                                                                        $(
                                                                                                "#info")
                                                                                                .append(
                                                                                                        '<span class="num">'
                                                                                                                + num
                                                                                                                + '</span>')
                                                                                        $(
                                                                                                "#info")
                                                                                                .append(
                                                                                                        '<span class="num"> years old</span>')

                                                                                    });

                                                                } else {
                                                                    run();
                                                                }
                                                            });
                                        });
                    });

}
于 2013-08-18T08:37:49.077 回答
0

你可以使用一个小的扩展来实现goto

// <label-name>
start: alert("aaa");
alert("bbb");
goto start;

如果你想goto在你的程序中检查一下:http: //summerofgoto.com/

于 2013-08-18T08:36:34.103 回答