Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/466.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 Fancybox内置Ajax内容_Javascript_Jquery_Ajax_Fancybox - Fatal编程技术网

Javascript Fancybox内置Ajax内容

Javascript Fancybox内置Ajax内容,javascript,jquery,ajax,fancybox,Javascript,Jquery,Ajax,Fancybox,我使用ajax在我的网站上显示内容。当点击菜单时,它会打开内容分区内的内容。这是我的ajax代码 $(document).ready(function() { $('.menu li a').click(function(){ var toLoad = $(this).attr('href')+' #content'; $('#content').animate({"width": "0px"},'normal',loadContent);

我使用ajax在我的网站上显示内容。当点击菜单时,它会打开内容分区内的内容。这是我的ajax代码

$(document).ready(function() {
    $('.menu li a').click(function(){
        var toLoad = $(this).attr('href')+' #content';
        $('#content').animate({"width": "0px"},'normal',loadContent);
        window.location.hash = $(this).attr('href').substr(0,$(this).attr('href').length-5);
        function loadContent() {
            $('#content').load(toLoad,'',showNewContent());
        }
        function showNewContent() {
            $('#content').animate({"width": "0px"},'fast');
            $('#content').animate({"width": "664px"},'fast');
        }
        return false;
    });
});
我想使用Fancybox灯箱效果(http://fancybox.net)在我的ajax内容中。下面是Fancybox通常需要的代码

    <script type="text/javascript" src="js/fancybox-1.3.4.pack.js"></script>
    <script type="text/javascript">
        $(document).ready(function() {
            $("a#example4").fancybox({
                'opacity'       : true,
                'overlayShow'   : false,
                'transitionIn'  : 'elastic',
                'transitionOut' : 'elastic',
            });
        });
    </script> 

$(文档).ready(函数(){
$(“示例4”).fancybox({
“不透明”:正确,
“叠加显示”:错误,
“transitionIn”:“弹性”,
“transitionOut”:“弹性”,
});
});

我怎样才能让它工作?Ajax调用?

首先,这一行是错误的

$('#content').load(toLoad,'',showNewContent());
它的意思是调用
showNewContent()
,并将返回的内容分配给该事件

应该是

$('#content').load(toLoad,'',showNewContent);
现在它说为这个函数分配一个引用,并在需要时运行它


现在要回答您的问题,您需要调用
$(#示例4”).fancybox({…})加载内容后,这意味着您将把它放入函数
showNewContent

load
回调处理程序应该是一个函数指针
showNewContent()
将立即调用该函数。试试这个

$(document).ready(function() {
    $('.menu li a').click(function(){
        var toLoad = $(this).attr('href')+' #content';
        $('#content').animate({"width": "0px"},'normal',loadContent);
        window.location.hash = $(this).attr('href').substr(0,$(this).attr('href').length-5);
        function loadContent() {
            $('#content').load(toLoad,'',showNewContent);
        }
        function showNewContent() {
            $("#example4").fancybox({
                'opacity'       : true,
                'overlayShow'   : false,
                'transitionIn'  : 'elastic',
                'transitionOut' : 'elastic',
            });
        }
        return false;
    });
});

谢谢,这似乎很接近。Fancybox脚本似乎正在工作,但它无法加载图像。它总是给我错误消息“无法加载请求的内容”。这句话应该给人更大的印象: