Не удается переинициализировать слайдер
Есть слайдер, который должен переинициализироваться при каждом клике на кнопку.
вроде все делаю по ману, но слайдер не разрушается, а снова заполняется элементами при повторном клике. Как поправить? $('#carousel').owlCarousel(); $(".button").click(function() { $('#carousel').data('owlCarousel').destroy(); $('#carousel').owlCarousel({ items: 3, pagination: false, navigation: true, navigationText: ["", ""], }); $('.list li').each(function() { if ($(".list li").hasClass("empty")) { console.log("Modified"); } else { $('#carousel').data('owlCarousel').addItem('<div>содержимое</div>'); }; }); $('#carousel').data('owlCarousel').reinit(); }); <ul class="list "> <!-- добавленное содержимое --> </ul> <div id="carousel" class="owl-carousel"> <!-- содержимое карусели --> <div class="empty"></div> </div> |
Цитата:
два варианта -- либо перед destroy удалить элементы через removeItem(); либо после destroy удалить содержимое #carousel зачем нужен сам destroy в вашем коде непонятно меняйте содержиое с помощью addItem и removeItem. |
Цитата:
$('#foot-carousel .li').each(function(){ $('#foot-carousel').data('owlCarousel').removeItem($(this)); }); или просто $('#foot-carousel').data('owlCarousel').removeAll(); ? |
Цитата:
первый вариант тоже для меня непонятен причём тут li ? <!DOCTYPE HTML> <html> <head> <title>Untitled</title> <meta charset="utf-8"> <style type="text/css"> #carousel .item{ display: inline-block; padding: 54px 0px; margin: 5px; color: #FFF; -webkit-border-radius: 3px; -moz-border-radius: 3px; border-radius: 3px; text-align: center; width: 120px; height: 100px; background-color: #0000FF; float: left; } .left{ text-align: left; margin-bottom: 10px; } .left .btn { display: block; } </style> <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script> <script src="http://owlgraphic.com/owlcarousel/owl-carousel/owl.carousel.js"></script> <script> $(function(){ $('#carousel').owlCarousel({ items: 3, pagination: false, navigation: true, navigationText: ["", ""] }); var i = 0; //для теста $(".button").click(function() { $('#carousel').find('>').remove() $('.list li').each(function() { if ($(".list li").hasClass("empty")) { console.log("Modified"); } else { $('#carousel').data('owlCarousel').addItem('<div class=item >содержимое '+(i++)+' </div>'); }; }); }); }); </script> </head> <body> <input name="" type="button" value="click" class="button"> <ul class="list "> <li>1</li> <li>2</li> <li>3</li> <li>4</li> <li>5</li> <!-- добавленное содержимое --> </ul> <div id="carousel" class="owl-carousel"> <!-- содержимое карусели --> </div> </body> </html> |
рони, все супер! Спасибо большое!
Единственное, что еще нужно поправить это создание событие на отслеживании добавления li, а не на клике по кнопке, т.к. все действия происходят быстрее заполнения самого списка. Пытаюсь проделать такой трюк, но не проходит.. $('.list').on('add', 'li', function(){...} Цитата:
|
Цитата:
|
Цитата:
|
ligisayan, :blink:
|
Часовой пояс GMT +3, время: 05:23. |