我在使用此网站时遇到了一些问题:http://metro-structure.com
它是由其他人设计/开发的,我被要求进来帮助解决这些问题。问题是,我在JS开发方面没有达到标准,所以我完全迷失了。这是正在发生的事情:
如果您点击加载时显示的图库的“视频”缩略图,则会弹出一个视频。完善。现在尝试单击“玉兰花2”,然后单击“视频”缩略图。没有视频,只有图像。如果您点击另一个列表,然后返回“玉兰2”,视频将正常显示。
现在,如果您点击其他没有视频的图库的最后一个缩略图,它仍然会尝试提取不存在的视频,当然会产生错误消息。
我相信下面的JS基本上是告诉浏览器如果在服务器上的相应“/ videos /”文件夹中托管了一个视频。我已经三重检查并确保文件结构是完美的,所以这不是问题:
以下是图库的参数:
controllers.Gallery = {
cfg: {
path: './gallery/',
max: 12,
duration: 300,
video: {
width: 640,
height: 480
},
dir: {
sm: '/Thumbs/',
med: '/228x150/',
lrg: '/600x400/',
video: '/video/'
}
},
以下是我认为存在缺陷的代码:
load: function ($set, gallery) {
var _this = this;
_this.$sets.removeClass('active');
$set.addClass('active');
if (!_this.$thumbs.find('.' + gallery).length > 0) {
var $ul = $('<ul class="' + gallery + ' clear"></ul>').appendTo(_this.$thumbs);
for (var i = 1, j = _this.cfg.max; i <= j; i++) {
$('<li><img src="' + _this.cfg.path + gallery + _this.cfg.dir.sm + i + '.jpg' + '"></li>').on('click', function () {
var $this = $(this);
if ($this.hasClass('video')) {
_this.showVideo($this);
} else { _this.showThumb($this); }
}).attr({
'data-med-src': _this.cfg.path + gallery + _this.cfg.dir.med + i + '.jpg',
'data-lrg-src': _this.cfg.path + gallery + _this.cfg.dir.lrg + i + '.jpg'
}).appendTo($ul);
}
}
_this.cleanup(_this.$thumbs.find('.' + gallery + ' li'));
_this.$thumbs.find('.' + gallery + ' li:last').attr({
'data-video-src': _this.cfg.path + gallery + _this.cfg.dir.video + gallery
}).addClass('video');
_this.$thumbs.find('ul').hide().removeClass('active');
_this.$thumbs.find('.' + gallery).show().addClass('active');
_this.showThumb(_this.$thumbs.find('.active li:first'));
},
可以在此处看到完整的.js文件:http://metro-structure.com/js/base.js
我很感激我可以使用任何建议或指示来进行排序。非常感谢!