2012-11-16 40 views
0

我有一個for循環,它產生少數'a'標籤按鈕和幾個分區。我正在嘗試編寫一個帶有切換效果的函數。如果我點擊一個特定的標籤,只有相應的div標籤應該被切換。我正在嘗試將動態值傳遞給此函數,但它不起作用。這是代碼。請幫忙。謝謝。將參數傳遞給動態下拉函數jquery

<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

只是一個fyi,您傳遞給click處理程序的回調函數是一個事件對象,而不是被單擊的元素的id。 – kinakuta

回答

3

此解決方案應該適合您。

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

有一些東西,你做錯了。

  1. 用數字開始id。實際上你的號碼是id。它應該以字母
  2. 具有腳本after身體。通常它應該在head元素中或body末尾
  3. .click()函數中,您傳遞的是$i。這個不成立。您應該使用event代替。在這種情況下,你並不需要它,並且可以在不傳遞任何東西的情況下擁有該方法。這是您使用event參數的時間。
+0

謝謝你。有效。將打勾它作爲正確的答案。 – user1051505

相關問題