Плагин цикла Jquery - несколько div с плагином цикла из одного скрипта?

Я новичок в jquery/javascript и мне нужна помощь!

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

Код, который я использовал до сих пор, показывает все изображения в первом div, но когда я нажимаю на свой логотип (который связан с index.html), все изображения внезапно появляются на месте и работают с плагином цикла.

вот что у меня в голове

<script type="text/javascript" src="js/jquery-1.3.js"></script>
        <script type="text/javascript" src="js/jquery.cycle.all.js"></script>
        <script type="text/javascript">
            $(document).ready(function(){
                $('#box1').cycle({ 
                        fx:     'fade', 
                       speed:   300, 
                       timeout: 0, 
                       next:   '#box1', 
                       pause:   1  
                });
            });

            $(document).ready(function(){
                $('#box2').cycle({ 
                        fx:     'fade', 
                       speed:   300, 
                       timeout: 0, 
                       next:   '#box2', 
                       pause:   1  
                });
            });

            $(document).ready(function(){
                $('#box3').cycle({ 
                        fx:     'fade', 
                       speed:   300, 
                       timeout: 0, 
                       next:   '#box3', 
                       pause:   1  
                });
            });
        </script>

тело...

<div id="container">


            <div id="box1" class="box">
            <img src="images/car.jpg" alt="images/car.jpg"/>
            <img src="images/van.jpg" alt="images/van.jpg"/>
            </div>


            <div id="box2" class="box">
            <img src="images/bottle.jpg" alt="images/bottle.jpg"/>
            <img src="images/pattern.jpg" alt="images/pattern.jpg"/>
            </div>

            <div id="box3" class="box">
            <img src="images/car.jpg" alt="images/car.jpg"/>
            <img src="images/van.jpg" alt="images/van.jpg"/>
            </div>
    </div>

В css контейнер position: absolute;

Я уверен, что есть простое решение, но я безрезультатно искал stackoverflow и другие сайты. Любая помощь приветствуется!!!!


person Francis    schedule 21.10.2012    source источник
comment
Один комментарий: вы должны включить все свои $('#box').cycle() в один $(document).ready(). Каково ожидаемое поведение?   -  person VKen    schedule 22.10.2012
comment
Привет, Луиджи. Ожидаемое поведение заключается в том, что каждый отдельный элемент div будет иметь свой индивидуальный цикл изображений. В настоящее время все мои изображения отображаются в первом div, пока я не нажму на свой логотип, который связан с index.html, и в этом случае все изображения появятся в своих правильных div и нормально запустят плагин цикла. Надеюсь, это имеет смысл.   -  person Francis    schedule 22.10.2012
comment
Также я сделал то, что вы сказали в комментарии выше!   -  person Francis    schedule 22.10.2012


Ответы (1)


Я сделал этот пример:

http://jsfiddle.net/oceog/YHLz2/11/

$(function() {
    $('.box').each(function() {
        var $this = $(this);
        $this.cycle({
            fx: 'fade',
            speed: 300,
            timeout: 0,
            next: $this,
            pause: 1
        });
    });
});​

он работает так, как ожидалось, ваш тоже. Может быть, вы используете слишком старый jquery? (текущий 1,8)

если ответ не соответствует вашей проблеме, не могли бы вы отредактировать jsfiddle, чтобы показать, в чем проблема?


  • когда я загружаю страницу
  • когда я нажимаю на свой логотип, связанный с index.html

Я думаю, что при загрузке страницы вы загружаете не index.html, а index.htm, или index.php или что-то еще, проверьте каталог вашего сайта

Jsfiddle должен повторять вашу проблему, а не просто показывать вашу структуру

если ваш сайт в интернете - дайте ссылку, я проверю


Попробуйте изменить свой код на следующий:

   $(document).load(function() {
    $('.box').each(function() {
        var $this = $(this);
        $this.cycle({
            fx: 'fade',
            speed: 300,
            timeout: 0,
            next: $this,
            pause: 1
        });
    });
});​
person zb'    schedule 21.10.2012
comment
Привет Эйкто. Jquery, который я использовал, был старым, поэтому я обновил его до текущей версии, но получил те же результаты, что и раньше. Я добавил немного css в jsfiddle и разместил изображения аналогично моему сайту. Может быть, это поможет?.. Я забыл упомянуть выше, что это горизонтальный сайт. Также он отлично работает каждый раз в Firefox, но не в Chrome или Safari. - person Francis; 22.10.2012
comment
Как и jqeury, кажется, работает нормально, но когда я открываю страницу, все изображения, независимо от того, в какой div они помещены, появляются друг над другом в первом div. Может быть, это проблема с моим css? - person Francis; 22.10.2012
comment
К сожалению, нет... В настоящее время все мои изображения отображаются в первом div, пока я не нажму на свой логотип, который связан с index.html, и в этом случае все изображения появятся в своих правильных div и запустим плагин цикла отлично. Я сбит с толку этим. - person Francis; 22.10.2012
comment
можешь повторить задачу? я не вижу логотипа в скрипке - person zb'; 22.10.2012
comment
Я попробовал новый сокращенный код. Он даже частично не запускал плагин, что странно, поскольку я вижу, что он работает на скрипке. Я обновил [скрипку] (jsfiddle.net/YHLz2/25), добавив больше моих html и css, чтобы увидеть, сможете ли вы обнаружить ошибку, хотя я тестировал его в школах w3, и он показал себя нормально. Я использовал последний скрипт, который работал. Моя проблема в том, что когда я загружаю страницу, все изображения из плагинов цикла в отдельных div перекрывают друг друга в первом div, но когда я нажимаю на свой логотип, связанный с index.html, вся страница работает нормально, а изображения вернуться к правильным div. - person Francis; 22.10.2012
comment
Привет, Эйкто! Я разместил сайт (colm-mccarthy.com) в Интернете, чтобы вы могли его просмотреть. - person Francis; 24.10.2012
comment
@Francis попробуйте использовать последний плагин цикла, ваш выпущенный в 2008 году, последний в 2012 году malsup.github .com/jquery.cycle.all.js - person zb'; 25.10.2012
comment
@Francis добавил еще один вариант, чтобы попробовать - person zb'; 25.10.2012
comment
попробуйте использовать последний плагин цикла, ваш выпущенный в 2008 году, последний в 2012 году malsup.github.com/jquery.cycle.all.js Это была моя проблема! Большое спасибо, эйкто. Я бы никогда не заметил это! Теперь работает идеально :) - person Francis; 25.10.2012