所以我在我试过的第一页上就可以正常工作了:
http://www.uksf.net/platoon.php
但我无法在首页上发挥作用:
http://www.uksf.net/index.php(侧边的导航栏应该有一个小菜单下拉(你可以在检查员身上看到))。
这是代码:
$this->con = $this->connect();
$query = $this->con->prepare('SELECT * FROM SideNav WHERE type = "top" ORDER BY displayorder ASC');
$query->setFetchMode(PDO::FETCH_ASSOC);
$query->execute();
while ($row = $query->fetch()){
echo'<div class="sn'.$row["id"].'">';
echo'<div class="sidelink">'.
$row["name"].'
</div>';
$query2 = $this->con->prepare('SELECT * FROM SideNav WHERE type = "bottom" AND parent = :id ORDER BY displayorder ASC');
$query2->bindParam(':id', $row["id"]);
$query2->setFetchMode(PDO::FETCH_ASSOC);
$query2->execute();
$rot = $query2->fetch();
if(!empty($rot))
{
echo'<div class="sn'.$row["id"].'group">';
echo'<div class="sidelinksub">';
$query2 = $this->con->prepare('SELECT * FROM SideNav WHERE type = "bottom" AND parent = :id ORDER BY displayorder ASC');
$query2->bindParam(':id', $row["id"]);
$query2->setFetchMode(PDO::FETCH_ASSOC);
$query2->execute();
while ($row2 = $query2->fetch()){
echo'<div>'.
$row2["name"]
.'</div>';
}
echo'</div></div>';
}
echo'<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js">
$(document).ready(function(){
$(".sn'.$row["id"].'").click(function(){
$(".sn'.$row["id"].'group").slideToggle("slow");
});
});</script></div>';
}
幻灯片切换不起作用我花了几天时间试图解决这个问题,所以我没有突发奇想,帮助表示感谢。
答案 0 :(得分:0)
您的切换似乎没问题,但您有一些JS错误。尝试使用开发人员工具(在chrome上按F12)。
我建议使用更通用的功能进行toggeling。的 See example 强>
$(function(){
$("div.hide").hide();
$("div.menu").click(function(event){
$("#" + event.target.id + "group").slideToggle("slow");
});
});
此函数有递归问题:
function slideNext($slidePos, $slides, $captions) {
if($slidePos != 2) {
$slidePos = $slidePos + 1;
}
else {
$slidePos = 0;
};
$nextLeft = $slidePos * -690;
$slides.delay(5000).animate({left: $nextLeft}, 1000);
$captions.delay(5000).animate({left: $nextLeft}, 1000);
slideNext($slidePos, $slides, $captions);
};
最后一行是被叫太多次了。你得到Uncaught RangeError: Maximum call stack size exceeded
错误。
我可以看到你用$slidePos = 0
调用这个函数然后如果它不等于2你再次将值设置为0。在任何情况下,无论你的州是什么,你都会继续调用slideNext
函数。这意味着您没有停止条件。