Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/81.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 将jquery fancybox显示为ajax成功_Javascript_Jquery_Ajax_Fancybox - Fatal编程技术网

Javascript 将jquery fancybox显示为ajax成功

Javascript 将jquery fancybox显示为ajax成功,javascript,jquery,ajax,fancybox,Javascript,Jquery,Ajax,Fancybox,我有: 被点击了 $(“.fancybox-effects-d”).fancybox({ 填充:15, 是的, }); $(“表单提交”).submit(函数() { var name=$('#name').attr('value'); var password=$('#password').attr('value'); $.ajax({ 类型:“POST”, url:“索引/成功”, 数据:{name:name,password:password}, 成功:函数() { //单击…的“提交”

我有:

  • 被点击了
    $(“.fancybox-effects-d”).fancybox({
    填充:15,
    是的,
    });
    $(“表单提交”).submit(函数()
    {
    var name=$('#name').attr('value');
    var password=$('#password').attr('value');
    $.ajax({
    类型:“POST”,
    url:“索引/成功”,
    数据:{name:name,password:password},
    成功:函数()
    {
    //单击…的“提交”按钮时,此表单将消失并显示div
    $('form#submit').hide(函数()
    {
    $('div#errors').fadeIn(3000);
    });
    }
    });
    返回false;
    });
    });
    

    我想移动fancybox,让它出现在ajax上。我应该怎么做呢?

    您可以使用最终用户看不见的链接,并在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>
    
    
    $(文档).ready(函数()
    {//单击时会显示此fancybox
    $(“.fancybox-effects-d”).fancybox({
    填充:15,
    是的,
    }
    });
    $(“表单提交”).submit(函数()
    {
    var name=$('#name').attr('value');
    var password=$('#password').attr('value');
    $.ajax({
    类型:“POST”,
    url:“索引/成功”,
    数据:{name:name,password:password},
    成功:函数()
    {
    $(“a#hiddenlink”)。触发器(“单击”);
    //单击…的“提交”按钮时,此表单将消失并显示div
    $('form#submit').hide(函数()
    {
    $('div#errors').fadeIn(3000);
    });
    }
    });
    返回false;
    });
    });
    
    您可以使用这个简单的函数手动调用fancybox

    $.fancybox(
            '<p>Content of the box in HTML</p>',
            {
                    padding:15,
                    closeBtn:true
            }
        );
    
    $.fancybox(
    “文本框的HTML内容”,
    {
    填充:15,
    真的吗
    }
    );
    

    只需将其添加到成功功能中。

    哇,它真的很有效!非常感谢。但是,我的意思是。。。我想将lightnbox“移动”到ajax的成功,而不是复制它。我的意思是我不需要页面上的链接来触发lightbox,我只需要在ajax成功时使用lightbox。这是lightbox触发链接的最佳解决方案吗?谢谢。这是一个解决方案,您也可以使用下面答案中的实现。您还可以创建一个简单的页面,并将“href”键设置为要显示的页面,因为我不喜欢在javascript中定义页面的标记,您可以在不同的位置重复使用页面。谢谢。很难选择最好的答案,因为两者都是完美的。罗伯,对不起,我选择这件阿斯耐尔作为最好的,因为它比较短,更适合我的需要。谢谢大家!没问题,我们是来帮你的,不是来收集那么多的分数的!:-)
    $.fancybox(
            '<p>Content of the box in HTML</p>',
            {
                    padding:15,
                    closeBtn:true
            }
        );