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