Javascript Fancybox不在CakePHP上工作

Javascript Fancybox不在CakePHP上工作,javascript,php,jquery,cakephp,fancybox,Javascript,Php,Jquery,Cakephp,Fancybox,我正在尝试制作一个图库,它有多个拇指,当有人点击它们时,它们会弹出原始图像,就像fancybox2页面上的说明页面中的第一个示例一样 经过多次失败的尝试,其中一些甚至连拇指都没有出现。有人建议我使用来解决这个问题,解决了一半的问题。当有人单击拇指时,该用户将被重定向到另一个显示原始图像的页面,而不是使其在库中浮动 现在我得到了一个未捕获的TypeError:Object[Object Object]在$(“.fancybox3”).fancybox({)中没有方法“fancybox”。如何解决这

我正在尝试制作一个图库,它有多个拇指,当有人点击它们时,它们会弹出原始图像,就像fancybox2页面上的说明页面中的第一个示例一样

经过多次失败的尝试,其中一些甚至连拇指都没有出现。有人建议我使用来解决这个问题,解决了一半的问题。当有人单击拇指时,该用户将被重定向到另一个显示原始图像的页面,而不是使其在库中浮动

现在我得到了一个
未捕获的TypeError:Object[Object Object]在
$(“.fancybox3”).fancybox({
)中没有方法“fancybox”
。如何解决这个问题

控制器

    public function ShowImages(){
        $this->layout = 'default';
        $this->loadModel('GalleryImage');
        $gallery_images = $this->GalleryImage->find('all');
        $this->set('gallery_images', $gallery_images);

    //$image_display = $gallery_image['path']
    }
查看

    <h2>Galeria</h2>
<br>
<table width="100%">
<tr>
    <?php
        $i=0;
        foreach( $gallery_images as $gallery_image ):?>
    <td align="center" class="thumbnail" style="display:inline-block;">
    <?php
        $src3 =$this->webroot. 'img/gallery/' .$gallery_image['GalleryImage']['path'];
        //$src3 = 'img/gallery/' .$gallery_image['GalleryImage']['path'];
        $this->Fancybox->setProperties( array( 
            'class' => 'fancybox3',
            'className' => 'fancybox.image',
            'title'=>'Single Image',
            'rel' => 'gallery1'
            )
        );
        $this->Fancybox->setPreviewContent($this->Timthumb->image('/img/gallery/' . $gallery_image['GalleryImage']['path'] , array('width' => 267, 'height' => 189)));

        $this->Fancybox->setMainContent($src3);
        echo $this->Fancybox->output();
    ?>
    </td>
    <?php $i++;
        if($i==4){
            echo "</tr><tr>";
            $i=0;   
        }
    ?>
<?php endforeach ?>
</tr>

</table>
Galeria

布局(标题):


身体{
填充顶部:50px;
垫底:20px;
}
$(函数(){
$(“.dropdown toggle”)。单击(函数(){
$(this.dropdown('toggle');
});
});    

如果您遵循CakePHP约定,您将把您的Fancybox Mediacontent放入“App/webroot/img/Fancybox media/”目录。如果是这样,您可以访问以下媒体:

在视图中构建临时DOM元素的好方法是使用Cake的Form Helper:

在AppController中:

之后,您可以在视图中将以下行替换为以下行:

替换:

echo "<a href=\"gallery/" . $gallery_image['GalleryImage']['path'] . "\"class=\"fancybox_img\">";
                          echo  $this->Html->image('gallery/' . $gallery_image['GalleryImage']['path'] . '', array('width' => '189px', 'height' => '267px', 'alt' => $gallery_image['GalleryImage']['path'] ));
                          echo "</a>";
$this->Html->link(
    $this->Html->image('gallery/' . $gallery_image['GalleryImage']['path'], array('width' => '189px', 'height' => '267px', 'alt' => $gallery_image['GalleryImage']['path'] )
);
请确保$gallery_image['GalleryImage']['path']-变量存储了图像文件的名称。还要确保在“App/webroot/gallery/myImage.jpeg”中存在图像(区分大小写)


另外,如果您有浏览器开发控制台中最终抛出的JS错误,请在其中发布。(请尝试F12)

在我看来,你的脚本根本不包括在该页面上。你包括fancybox js吗?我是这样做的:我从fancybox网站复制了包含内容。感谢你的回复,我的fancybox内容位于C:\wamp\www\html\PushUp\u app\app\webroot\fancybox,我将把它放在webroot/img上试用。我也没有他包括帮助者,但当我使用Html->link with Html图像时,它会显示一个文本链接,这就是为什么我要这样做,因为图像是显示的。$gallery\u image变量正在按它应该的方式工作,图像名称就在那里。我完全没有办法解决这个问题,我已经尝试了将近一周的时间。还有它不断地给我提示和错误,告诉我在名为gallery的控制器上创建一个方法。cake是否假设“gallery/”是一个动作?在尝试之前,请尝试以下方法:谢谢!这很有帮助,但我收到多个通知(8)APP\Plugin\Fancybox\View\Helper\FancyboxHelper.php,第123行),与rel、href和title变量相关,当我单击图像时,它会打开另一个页面,但它是空白的,但是如果我将示例中的url放在您发布的链接的“如何使用”指南上,它会显示该图像。它不应该在页面上浮动,而不是重定向吗?
echo "<a href=\"gallery/" . $gallery_image['GalleryImage']['path'] . "\"class=\"fancybox_img\">";
                          echo  $this->Html->image('gallery/' . $gallery_image['GalleryImage']['path'] . '', array('width' => '189px', 'height' => '267px', 'alt' => $gallery_image['GalleryImage']['path'] ));
                          echo "</a>";
$this->Html->link(
    $this->Html->image('gallery/' . $gallery_image['GalleryImage']['path'], array('width' => '189px', 'height' => '267px', 'alt' => $gallery_image['GalleryImage']['path'] )
);