我有一个for循环,它生成很少的'a'标签按钮和几个分区。我正在尝试编写一个具有切换效果的函数。如果我单击特定的标签,则只应切换相应的div标签。我试图将动态值传递给此函数但它不起作用。这是代码。请帮忙。谢谢。
<html>
<header>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link href="layout.css" rel="stylesheet" type="text/css">
<script type="text/javascript" src="jquery.js"></script>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.0/jquery.min.js" type="text/javascript"></script>
<style type="text/css">
.hideonly
{
padding:50px;
display:none;
}
</style>
</header>
<body>
<?php
$num_row = 5; //dynamic value
$i = 0;
$header_title = "";
for ($i=0;$i<$num_row;$i++)
{
$header_title = $i; // Displaying all the headers and menus for the hotel.
echo "<div>";
echo "<br>";
echo "<a class = \"menu-header-2\" href=\"#\">$header_title</a>";
echo "<div id = \".$i.\" class = \"hideonly\" >Hello World!</div>";
echo "<br>";
echo "</div>";
}
?>
</body>
<script>
$(document).ready(function(){
$(".menu-header-2").click(function($i){
$("#" . $i).slideToggle("fast");
});
});
</script>
</html>
答案 0 :(得分:3)
此解决方案应该适合您。
$(this).next('div').slideToggle('fast');
有些事情你做错了。
id
。实际上,您的id
就是数字。它应该以字母开头after
成为正文。通常情况下,它应该在head
元素中,或者在body
结束.click()
函数中,您正在传递$i
。这没有道理。您应该使用event
代替。在这种情况下,您并不真正需要它,并且可以使用该方法而不传递任何内容。有时你会使用event
参数。