2011-04-30 40 views
1

我试图通过fancybox行为添加一个灯箱到我的网站,但点击要使用FF或Chrome的灯箱图像后用JS分析器检查进入一个死循环,出现此错误:Fancybox无限循环 - 无法读取未定义的属性'href'

Cannot read property 'href' of undefined

图像被然而加载,虽然收盘时的错误,或在HTML源有时崩溃的浏览器,但这些调用的无限数量和重建图像代码导致这种情况发生。

这是我的HTML与图像:

<div class="below_shadow" style="top: 0px;"> 
    <a class="portfolio_link" href="http://mywebsite.com/images/DSC_0258-794x1024.jpg"> 
    <img class="frame" alt="" src="http://mywebsite.com/images/DSC_0258-794x1024.jpg&amp;h=131&amp;w=180&amp;zc=1" style="top: 0px;"> 
    </a> 
    <span style="display: none;" class="portfolio4_hover"> 
     <a style="top: 0px; " class="portfolio_image" href="javascript:;"> 
      <img alt="" src="http://mywebsite.com/images/icon_zoom.png"> 
     </a> 
    </span> 
</div> 

这是我在JS区间调用:

jQuery(window).load(function() { 
jQuery('.below_shadow a.portfolio_link').fancybox({ 
    padding: 0, 
    overlayColor: '#000', 
    transitionIn: 'elastic', 
    transitionOut: 'elastic', 
    overlayOpacity: .8, 
    showNavArrows: true 
}); 
}); 
+1

也许你有一些其他的代码你还没有共享,这是造成这个问题。尝试在http://jsfiddle.net上发布基本演示 – Mottie 2011-04-30 20:35:53

+0

我对fancybox不熟悉,但在我看来,fancybox代码库中的某些内容正试图访问您已经定义的图像链接的href属性portfolio_link。但是,该映像在服务器上不存在,并返回404。 首先确保您引用的映像在您引用的位置实际可用,然后再触摸底座。 – 2011-05-01 07:28:42

回答

0

插件的fancybox与同步或调用的图像资源的错误。当图像被点击时,透明div加载大图像+标题。在某些未知的情况下,标题并不总是被加载,这会导致系统中的错误。

即使您的锚点和图片具有“title”属性,似乎也会有一些fancybox bug导致此内部循环,并且由于未正确传递title参数而导致泄漏。

+0

非常多,但我不知道它是fancybox或jQuery调用中的问题,因为这是内部循环开始的地方(从f​​ancybox库中调用一些jquery) – Insight 2011-05-02 10:52:41

0

我发现了错误 - 当这段代码被评为无限循环被称为:

jQuery(this).find('.portfolio4_hover').show(); 

老实说 - 不知道为什么,但这样的话。如果我评论这一行(以下是隐藏行),则一切正常。

相关问题