将参数传递给动态下拉函数jquery

时间:2012-11-16 06:01:43

标签: php jquery html

我有一个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>

1 个答案:

答案 0 :(得分:3)

此解决方案应该适合您。

$(this).next('div').slideToggle('fast');

有些事情你做错了。

  1. 使用数字开始id。实际上,您的id就是数字。它应该以字母开头
  2. 让脚本after成为正文。通常情况下,它应该在head元素中,或者在body结束
  3. 之前
  4. .click()函数中,您正在传递$i。这没有道理。您应该使用event代替。在这种情况下,您并不真正需要它,并且可以使用该方法而不传递任何内容。有时你会使用event参数。