我遵循了blueimp的官方setup guide。
我下载了最新版本的blueImp(2.25.0)
首先,我包括了css和js:
<!-- Blueimp Gallery -->
<link rel="stylesheet" href="../public/Gallery-2.25.0/css/blueimp-gallery.min.css">
<script src='../public/Gallery-2.25.0/js/blueimp-gallery.min.js'></script>
然后,我准备了轮播:
<div id="blueimp-gallery-carousel" class="image blueimp-gallery blueimp-gallery-controls blueimp-gallery-carousel">
<div class="slides"></div>
<h3 class="title"></h3>
<a class="prev">‹</a>
<a class="next">›</a>
<a class="play-pause"></a>
<ol class="indicator"></ol>
</div>
现在,我准备了图片:
<div id="links">
<a href="../pcs/pic1.png"></a>
<a href="../pcs/pic2.png"></a>
<a href="../pcs/pic3.png"></a>
</div>
最后,我包含了一个脚本:
<script src="../js/blueImp.js"></script>
...具有以下内容:
<script>
blueimp.Gallery(
document.getElementById('links').getElementsByTagName('a'),
{
container: '#blueimp-gallery-carousel',
carousel: true
}
);
</script>
结果:
如您所见,我遵循了安装指南,但是出现TypeError:单击箭头后,this.slides [t]未定义。我也尝试使用2.23.0,同样的错误。
我究竟做错了什么?
测试浏览器:
Mozilla Firefox 52.0.2(64位),适用于Ubuntu的Mozilla
Mozilla Firefox 52.0.1(32位),Windows 7
最佳答案
我通过在底部用Jquerys $(document).ready(function(){ ... })
包装脚本来解决它
$(document).ready(function() {
blueimp.Gallery(
document.getElementById('links').getElementsByTagName('a'),
{
container: '#blueimp-gallery-carousel',
carousel: true
}
);
});
但是我不明白为什么这样做是必要的,因为脚本是在最后一个位置(紧接在body标记之前)包含的。有什么解释吗?