Div, отображающий весь массив, должен отображать только одно значение за раз - PullRequest
0 голосов
/ 30 декабря 2011

У меня есть эта страница, которая отображает картинки в div.У меня есть цикл jquery для отображения этих изображений в слайд-шоу.Я бы хотел, чтобы слайд-шоу было ручным, и имел бы раздел слайдов для навигации, который отображается поверх изображений для навигации.Проблема заключается в том, что независимо от того, где я размещаю свой div «слайды», он извлекает ссылки для каждого результата изображения на моей странице (а не только для каждого результата на странице).Для лучшей ссылки, пожалуйста, посетите эту ссылку .Если вы осмотрите элемент, вы увидите, что div class = "slides" берет то, что выглядит как каждое изображение во всем массиве, и устанавливает ссылку.(Я понимаю, что там, где у меня сейчас есть div, он берет каждое изображение во всем массиве).Я попытался установить это над кодом php, прямо под foreach, внутри foreach и даже полностью вне div 'thumbs' (где он должен находиться), без каких-либо изменений в результатах.И что еще хуже, у меня есть проблема с z-индексом, из-за которой моя навигация отображается ниже всех изображений, даже если z-индекс установлен правильно.Поэтому, чтобы увидеть мои результаты, мне нужно «проверить элемент» в Chrome или отключить изображения, чтобы увидеть, что происходит.У кого-нибудь есть подсказка?

<?php 
                      $p=array($condo['Unit']['photo1'],$condo['Unit']['photo2'],$condo['Unit']['photo3'],$condo['Unit']['photo4']);
         echo '<div class="slides"></div>';          
                      if($condo['Unit']['photo1']!=''){


                            foreach($p as $value) {
                                echo '<a href="/complexes/';
                                echo $condo['Complex']['complex_name'];
                                echo '/';
                                echo $condo['Unit']['unitnum'];
                                echo '"><img src="';
                                echo $value;
                                echo '" style="width:240px; height:160px" /></a>';
                                }
                           echo '</div>';
                        }
                       elseif($condo['Unit']['photo1'] == '') {
                              echo '<a href="/complexes/';
                              echo $condo['Complex']['complex_name'];
                              echo '/';
                              echo $condo['Unit']['unitnum'];
                              echo '"><img src="/img/img_unavailable.png" /></a>'; 
                        }
                ?>

Ответы [ 2 ]

0 голосов
/ 05 января 2012

Хорошо, понял.Проблема была определенно в моем коде для слайд-шоу.Я слегка изменил свой php, вот так:

if($condo['Unit']['photo1']!=''){
                            echo '<div class="thumbs">';

                            foreach($p as $value) {
                                if($value !='') {
                                    echo '<a href="/complexes/';
                                    echo $condo['Complex']['complex_name'];
                                    echo '/';
                                    echo $condo['Unit']['unitnum'];
                                    echo '"><img src="';
                                    echo $value;
                                    echo '" style="width:240px; height:160px" /></a>';
                                    }
                                }
                           echo '</div>';

Затем вот как выглядел мой скрипт цикла JQuery:

<script>

$(function() {
$('.thumbs').each(function(i) {
    $(this).append('<div class="overlay slides'+i+'">').cycle({
        fx:  'fade',
        speed: 1000,
        timeout: 0,
        pager:  '.slides' + i,
        slideExpr: 'img'
        });
    });
});

, и это сработало!Я использовал эту ветку в качестве справочного материала, чтобы начать: Несколько плагинов плагинов для различных галерей на одной странице .

Я удалил обратный вызов before () и добавил append ().Yippee!

0 голосов
/ 31 декабря 2011

Не знаю, правильно ли я понимаю ваш вопрос. Это мое наблюдение: Плагин цикла имеет все изображения как непосредственные потомки элемента div, который использовался для запуска плагина. Где, поскольку у вас есть ссылки как непосредственные дети, а затем изображения.

Также у вас есть дополнительный закрывающий div или отсутствующий открывающий div. Если вы используете CakePHP, почему бы не использовать HTML-помощник для отображения ссылок, изображений и других тегов? Это довольно полезно, и ваш код выглядит чище. (Только мое мнение)

...