Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > JavaScript: Общие вопросы > Lightbox


Автор: fleetboss 30.5.2012, 18:29
Помогите с галереей. Мне нужно поправить мою "мультигалерею".

Вот шапка
Код

<script language="JavaScript" type="text/javascript" src="js/jquery.js"></script>
<script language="JavaScript" type="text/javascript" src="js/jquery.lightbox-0.5.js"></script>
<script type="text/javascript">
$(function() {
 $('#gallery a').lightBox();
});
</script>
</head>


Дальше у меня идет запрос в mysql базу и сайт выдает информацию... например 20 полей с фотографией и для каждой фотографии свой текст....
Код

for($i=0;$i < mysql_num_rows($select_objects);++$i){
$row = mysql_fetch_row($select_objects);
echo '<tr>
<td style="padding: 4px">
<div id="gallery">
    <ul>
        <li><a href="img/uploads/objects/'.$row[15].'" title="'.$row[3].'"><img src="img/uploads/objects/'.$row[16].'" border="0" alt="" width="220" height="150"></a></li>
    </ul>
</div>
</td>
</tr>';
}

Вот... везде border, hover и т.п. показывается как надо, а вот само нажатие работает только на первое самое верхнее выданную фотографию... остальные открывает обычным способом. Как сделать чтобы все открывались и показывались как первый? Делать чтоли div id="gallery2" / div id="gallery3" и т.д.? может проще способ есть?

Автор: Amphiluke 30.5.2012, 20:12
Назначать id="gallery" не всем div`ам в каждой из строк таблицы, а либо самой таблице целиком, либо tbody, который содержит все нужные tr`ы.

Автор: targetkeeper 24.6.2012, 16:42
В случае наличия на сайте нескольких элементов с одинаковым id, стили применяются к ним всем, а вот jQuery выхватывает только первый элемент (сам как-то наступал на эти грабли).

Можно на каждую ссылку навесить класс 'light' и запускать lightbox так: $('.light').lightBox()

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)