2

我有:

  • <a href>显示花式框的链接和
  • <form>当subtmit按钮点击ajax成功时在页面上显示一条消息。他们都工作正常。

代码如下。

<script>
    $(document).ready(function ()
    { //this fancybox appears when <a href="..." ...>...</a> clicked
        $(".fancybox-effects-d").fancybox({
            padding:15,
            closeBtn:true,
        });

        $("form#submit").submit(function ()
        {
            var name = $('#name').attr('value');
            var password = $('#password').attr('value');
            $.ajax({
                type:"POST",
                url:"index/success",
                data:{ name:name, password:password},
                success:function ()
                {
                    //this form disappears and div appears when submit button of the <form id="submit" ...>...</form> clicked
                    $('form#submit').hide(function ()
                    {
                        $('div#errors').fadeIn(3000);

                    });
                }
            });
            return false;
        });
    });
</script>

我想移动那个花式框以显示 ajax 成功。我该怎么做?

4

2 回答 2

4

您可以使用对最终用户不可见的链接,并在 ajax 成功回调上使用 jQuery 触发它。像这样的东西:

<a id="hiddenlink" href="#fancy" style="display: none;"></a>

<script>

    $(document).ready(function ()
    { //this fancybox appears when <a href="..." ...>...</a> clicked
        $(".fancybox-effects-d").fancybox({
            padding:15,
            closeBtn:true,
            }
        });

        $("form#submit").submit(function ()
        {
            var name = $('#name').attr('value');
            var password = $('#password').attr('value');
            $.ajax({
                type:"POST",
                url:"index/success",
                data:{ name:name, password:password},
                success:function ()
                {
                    $("a#hiddenlink").trigger("click");
                    //this form disappears and div appears when submit button of the <form id="submit" ...>...</form> clicked
                    $('form#submit').hide(function ()
                    {
                        $('div#errors').fadeIn(3000);

                    });
                }
            });
            return false;
        });
    });
</script>
于 2012-07-19T13:58:18.120 回答
3

您可以使用这个简单的功能手动调用fancybox

$.fancybox(
        '<p>Content of the box in HTML</p>',
        {
                padding:15,
                closeBtn:true
        }
    );

只需将其添加到成功函数中即可。

于 2012-07-19T14:03:38.777 回答