这个问题与这里的其他几个问题非常相似,但有所不同。div 的数量可以是无到十几个之间的任何值,并且每个要旋转的对象的命名 DIV 都是相同的。下面的代码:
PHP:
if($job->getPictureGalleries() != null){
$gallerys = $job->getPictureGalleries();
foreach($gallerys as $gallery){
$gallery = Doctrine_Core::getTable('Gallery')->find($gallery);
echo "<div class=\"galleries\">";
include_partial('gallery/record', array('gallery' => $gallery));
echo "</div>";
}
if(count($gallerys) > 1){
$buttons = <<<EOD
<table style="box-shadow: 0.2em 0.2em 0.3em grey; width: 60%; margin-left: 20%; margin-top: 15px; background-color: whitesmoke; border: 1px solid grey; border-radius: 15px; height: 20px">
<tr style="width: 100%; ">
<td style="width: 33%; text-align: right">
<a href="#" id="previous_link"><img src="/web/images/previous.png" height="35" width="35" /></a>
</td>
<td style="
width: 33%;
color: #444444;
font-weight: bold;
text-align: center;
text-shadow: 0.1em 0.1em 0.3em grey;
">
More Galleries
</td>
<td style="width: 33%">
<a href="#" id="show_next_gallery" ><img src="/web/images/next_1.png" height="35" width="35" /></a></div>
</td>
</tr>
</table>
EOD;
echo $buttons;
}
};
jQuery:
$(document).ready(function() {
if($('.galleries').size() > 1){
$('.galleries').hide();
$('.galleries').first().show();
$("#show_next_gallery").click(function() {
$('.galleries').first().hide();
$('.galleries').nextAll().show();
return false;
});
$("#previous_link").click(function() {
$('.galleries').hide();
$('.galleries').prevAll().show();
return false;
});
}
});
上面的代码在只检索两个对象时工作得很好,但除此之外,当单击下一个按钮时一切都崩溃了——导致显示多个 div。