0

我在这个网站上遇到了一些问题:http: //metro-structure.com

它是由其他人设计/开发的,我被要求进来帮助解决这些问题。问题是,我在 JS 开发方面达不到标准,所以我完全迷路了。这是发生了什么:

如果您单击加载时显示的画廊的“视频”缩略图,则会弹出一个视频。完美的。现在尝试单击“magnolia 2”,然后单击“视频”缩略图。没有视频,只有图片。如果您单击另一个列表,然后返回“magnolia 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

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

4

0 回答 0