Расширенные фотосеты Pixelunion возвращаются к настройкам по умолчанию после первой страницы (с бесконечной прокруткой)

Я использую плагин Fantastic Extended Photosets от Pixelunion вместе с бесконечной прокруткой Пола Айриша, и он отлично работает.

За исключением одного, настройки, которые я сделал в скрипте (отключение закругленных углов), не переносятся после загрузки второй страницы с помощью бесконечной прокрутки. (Он возвращается к значению по умолчанию)

Мой обратный вызов выглядит так:

<script type="text/javascript">
        $(document).ready(function(){
            $('#content').infinitescroll({ 
                navSelector : "div.navigation",
                nextSelector : ".navigation a#next",
                itemSelector : ".entry", 
                bufferPx : 50,
                extraScrollPx: 0,    
                loading: {
                    finished: undefined,
                    finishedMsg: "Congratulations, you've reached the end of the      internet.",
                    img: "http://static.tumblr.com/8je4mhi/aLbmpfjp5/1.gif",
                    msg: null,
                    msgText: "",
                    selector: null,
                    speed: 'slow',
                    start: undefined
                },
                behavior: 'twitter',
            },function(newElements){                    
                $(newElements).find('.photo-slideshow').pxuPhotoset();
            });
        });
        </script>

А мой скрипт фотосетов pxu выглядит так:

    <script type="text/javascript">
        $(document).ready(function() {
            $('.photo-slideshow').pxuPhotoset({
                'ligthbox'  : true,
                'highRes'   : true,
                'rounded'   : 'false',
                'exif'      : false,
                'captions'  : false,
                'gutter'    : '100px',
                'photoset'  : '.photo-slideshow',
                'photoWrap' : '.photo-data',
                'photo'     : '.pxu-photo'
            }, function() {
                // callback
            });
        });
    </script>

Все работает, если я изменяю значения по умолчанию в фактическом файле плагина, но я бы предпочел иметь возможность изменять их на лету с помощью скрипта. Кто-нибудь знает возможно ли это?

ОБНОВИТЬ:

Так что в этом есть смысл, я этого не осознавал. Я бы просто добавил такую ​​переменную?

    <script type="text/javascript">
        $(document).ready(function() {
            $('.photo-slideshow').pxuPhotoset({
                var photosetOptions = {
                'ligthbox'  : true,
                'highRes'   : true,
                'rounded'   : 'false',
                'exif'      : false,
                'captions'  : false,
                'gutter'    : '10px',
                'photoset'  : '.photo-slideshow',
                'photoWrap' : '.photo-data',
                'photo'     : '.pxu-photo'
            }, function() {
                // callback
            });
        });
        });
    </script>

Обновление # 2

Думаю, я понял ... Я поставил переменную перед плагином бесконечной прокрутки вот так?

<script type="text/javascript">

        var photosetOptions = {
            'ligthbox'  : true,
            'highRes'   : true,
            'rounded'   : 'false',
            'exif'      : false,
            'captions'  : false,
            'gutter'    : '10px',
            'photoset'  : '.photo-slideshow',
            'photoWrap' : '.photo-data',
            'photo'     : '.pxu-photo'
        };

        $(document).ready(function(){
            $('#content').infinitescroll({ 
                navSelector : "div.navigation",
                nextSelector : ".navigation a#next",
                itemSelector : ".entry", 
                bufferPx : 50,
                extraScrollPx: 0,    
                loading: {
                    finished: undefined,
                    finishedMsg: "Congratulations, you've reached the end of the internet.",
                    img: "http://static.tumblr.com/8je4mhi/aLbmpfjp5/1.gif",
                    msg: null,
                    msgText: "",
                    selector: null,
                    speed: 'slow',
                    start: undefined
                },
                behavior: 'twitter',
            },function(newElements){                    
                $(newElements).find('.photo-slideshow').pxuPhotoset(photosetOptions);
            });
        });
    </script>

Поправьте меня, если я поставил не в том порядке, или что-то в этом роде .. Но это вроде работает!


person dsherv    schedule 05.07.2013    source источник


Ответы (1)


Просто вызывая pxuPhotoset() еще раз, вы разрешаете плагину использовать значения по умолчанию. Параметры необходимо устанавливать каждый раз, когда вы вызываете функцию (потому что теоретически вы можете использовать разные параметры для разных фотосетов).

Что вам нужно сделать, так это сохранить ваши параметры в одной переменной и использовать ее вместо этого. Это должно выглядеть примерно так:

var photosetOptions = {
  'lightbox' : true,
  'highres'  : true

  /* etc */
};

Затем все ваши параметры хранятся в одном месте, и все, что вам нужно сделать, это вызвать функцию следующим образом:

$('.photo-slideshow').pxuPhotoset(photosetOptions);

Обновлять

Итак, в целом, используя ваши параметры, код будет выглядеть так:

var photosetOptions = {
    'ligthbox'  : true,
    'highRes'   : true,
    'rounded'   : false,
    'exif'      : false,
    'captions'  : false,
    'gutter'    : '100px',
    'photoset'  : '.photo-slideshow',
    'photoWrap' : '.photo-data',
    'photo'     : '.pxu-photo'
};

$('.photo-slideshow').pxuPhotoset(photosetOptions);
person graygilmore    schedule 05.07.2013
comment
Обновил мой вопрос, это имеет смысл, но я немного не понимаю, где разместить переменную? - person dsherv; 05.07.2013
comment
Его нужно ставить перед любым вызовом pxuPhotoset(). Я обновлю свой ответ. - person graygilmore; 05.07.2013
comment
Обновил мой ответ, похоже, это сработало, я думаю, что поместил его в правильном порядке? - person dsherv; 05.07.2013
comment
Ага! Предположим, вы также вызываете pxuPhotoset() вне функции бесконечной прокрутки. Просто убедитесь, что вы объявили свои параметры в самом начале вашего JS, и вы сможете использовать его везде. - person graygilmore; 05.07.2013
comment
Большой! Большое спасибо, это было действительно полезно! - person dsherv; 05.07.2013