我正在尝试通过fancybox行为向我的网站添加一个灯箱,但是点击图像以使用FF或Chrome进行灯箱检查后使用JS探查器进行检查,我遇到了这个错误的无限循环:
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&h=131&w=180&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
});
});
答案 0 :(得分:0)
Fancybox插件存在同步或调用图像资源的错误。单击图像时,透明div将加载大图像+标题。在某些未知情况下,标题并不总是被加载,这会导致系统中的错误。
即使您的锚点和图像确实具有&#34;标题&#34;属性,似乎有一些fancybox错误导致这个内部循环和泄漏没有正确传递title参数。
答案 1 :(得分:0)
我发现了错误 - 在评估此代码时调用了无限循环:
jQuery(this).find('.portfolio4_hover').show();
老实说 - 不知道为什么,但事实确实如此。如果我评论这一行(并且它是下面的隐藏线),一切正常。