JS从服务器中提取不存在的视频文件的问题

时间:2013-08-01 18:47:34

标签: javascript

我在使用此网站时遇到了一些问题: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

我很感激我可以使用任何建议或指示来进行排序。非常感谢!

0 个答案:

没有答案