Jssor - как динамически добавлять слайды?

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

Я попытался создать html-текст слайдов и назначить его контейнеру слайдера, а затем запустить слайдер-стартер. Но слайдер не отображается должным образом.

Большое спасибо за любое предложение


person Ben    schedule 22.05.2014    source источник


Ответы (2)


Вы поступаете правильно. Все, что вам нужно, это проверить правильность слайдов (добавленных вами динамически).

Чтобы проверить динамически созданный html, вы можете скопировать его и протестировать в отдельном html-файле, чтобы увидеть, работает ли слайдер.

person jssor    schedule 22.05.2014
comment
Я тщательно проверил html-текст слайдов, но все еще не могу заставить его работать. Я перешел на другой способ: создайте фиктивные слайды - на этот раз количество слайдов фиксировано, тогда скрипт js изменит атрибут src изображения и большого пальца, но работают только изображения, то есть отображаются правильные изображения. Большие пальцы не работают, фиктивные большие пальцы не меняются на настоящие. - person Ben; 22.05.2014
comment
пожалуйста, разместите свой код (как до генерации, так и после генерации javascript + html) здесь - person jssor; 23.05.2014
comment
Я выяснил причину: я поместил триггер запуска слайдера вне функции успеха вызова ajax, что означает, что слайдер запускается до html-текста, назначенного контейнеру слайдов. Мои вещи сейчас в порядке. Спасибо - person Ben; 23.05.2014
comment
было бы неплохо поделиться примером кода, чтобы другим не приходилось задавать тот же вопрос. - person husayt; 22.09.2014
comment
Привет Жсор. Знаете ли вы какие-либо примеры загрузки jssor с помощью ajax при нажатии кнопки? - person M H; 18.05.2015
comment
@Ben, вы можете предоставить нам рабочий образец? Я также хочу динамически добавлять слайды. мне срочно нужно продемонстрировать к понедельнику, 25 мая 2015 года. - person KMX; 23.05.2015
comment
@michaelhanon, извините, что поздно увидел ваш комментарий, в любом случае я публикую свой ответ ниже - person Ben; 31.05.2015

Я публикую то, что я сделал здесь, если это полезно для кого-то:

//function to start the slider    
jssor_slider1_starter = function (containerId) {
                    var options = {
                        $AutoPlay: false,
                        $SlideDuration: 800,
                        $FillMode: 2,
                        $ThumbnailNavigatorOptions: {
                            $Class: $JssorThumbnailNavigator$,
                            $ChanceToShow: 2,

                            $Lanes: 1,
                            $SpacingX: 14,
                            $SpacingY: 12,
                            $Cols: 6,
                            $Align: 156,
                            $Orientation: 2
                        }
                    };

                    var jssor_slider1 = new $JssorSlider$(containerId, options);
                };
//Ajax function to start the slider after loading the 'content' of slider
//getImgUrl is the url of page returning urls of images contained in slider. Format of response can be whatever as long as you can parse it, my sample is [[[url1,url2..]]]   
 $.ajax({
                    url:getImgUrl,
                    success:function(data){
                        var imgurls_str=data.substring(data.indexOf('[[[')+3,data.indexOf(']]]'));
                        var imgurls=imgurls_str.split(',');
                        var imgHtmls='';
                        for(var i=0;i<imgurls.length;++i){
                            imgHtmls+='<div><img u="image" src="'+imgurls[i]+'" /><img u="thumb" src="'+imgurls[i]+'" /></div>';
                        }
                        $("#slides").html(imgHtmls);
                        jssor_slider1_starter('slider1_container');
                    }
                });
person Ben    schedule 31.05.2015
comment
В приведенном выше ответе изображения добавляются все сразу, так как imgHtmls содержат все изображения, мой вопрос: как добавить изображение 1 за раз и обновить ползунок? - person Biswas Khayargoli; 25.05.2017