2009-10-12 130 views
2

我刚刚将我的JavaScript转移到jQuery的简单AJAX函数。不过,我试图使用jQuery的插件,因为我想保持相同的功能,但不想包含10个不同的库。 如果我删除jquery包含并保持lightbox,它的效果很好 如果我把它放回去,它只是提供全尺寸的图像而不是框,无论是Chrome还是Firefox的控制台都抱怨任何东西,它只是直接图片 我尝试了5个不同的lightbox克隆/ jQuery插件,但他们都给了我相同的行为,这导致我认为有些东西我失踪了jQuery杀死灯箱

现在我的标题看起来像这样(double checked,重新都在那里):

<script type='text/javascript' src='js/jquery.js'></script> 
<script type='text/javascript' src='js/thickbox.js'></script> 
<link rel='stylesheet' type='text/css' href='css/thickbox.css' /> 

和我的画廊(PHP):

foreach(...){ 
echo "<a href=\"$path\" class='thickbox' rel='$folder'><img border=none src=\"$thumb\" /></a>&nbsp;\n" ; 
} 

为背景,在foreach的图像是从一个Ajax调用加载,但这是从来没有收藏的一个问题,它不应该是因为所有的HTML反正是有

+2

GET萤火http://getfirebug.com/有和没有jQuery的检查收藏夹添加到项目。由于您使用的是PHP,因此可能会出现'$'的问题。您可以尝试在脚本文件的顶部执行'$ j = jQuery.noConflict()'。 – peirix 2009-10-12 14:43:37

回答

3

这通常是因为其他库(而不是jQuery)也尝试使用美元符号变量名称。

在jQuery中有一个设置打开兼容模式,这会强制您使用jQuery()而不是$()来进行jQuery调用。

+0

是的,我用jQuery取代了我的$ ajax,它的工作原理......但只在铬:( – blackbird 2009-10-12 15:14:17

0

只是一个想法...不LightBox试图包括它自己的jQuery副本或类似的东西? IIRC,这可能是你的问题的原因...

+0

原始灯箱基于原型,我使用的插件使用jquery。我试图删除我自己的jquery并离开它到了插件,不起作用,它打破了我的ajax – blackbird 2009-10-12 15:13:37

0

试试看Shadowbox。它有同样的效果,但没有与我的JQuery问题。他们也有非常相似的设置,并且很容易切换。

+0

刚刚尝试过那个,也是slimbox。没有一个工作,我认为有一个问题,当从AJAX加载拇指,因为我跑了一个小测试没有ajax(用jquery)和模式窗口工作 – blackbird 2009-10-12 15:45:09

3

您也可以使用jQuery Lightbox Plugin

+0

我会提倡这一点,jQuery灯箱插件在几个方面比原来的方式更优越 – 2009-10-12 17:19:28

+0

这就是我要做的,我找到了解决方案,供将来参考。 javascript代码: $('#yourdiv a')。lightBox() 未包含,因为我的内容是通过AJAX获取的 解决这个问题的方法是将它添加到$(document).ready()中,并确保在页面中包含相关的js文件,即使是通过AJAX检索的内容(如果它是新页面) – blackbird 2009-10-13 00:25:27