2012-06-20 111 views
0

我有這樣一段代碼在我的index.php(index.php文件有它自己的CSS文件):爲什麼jQuery的切換不工作

<script type="text/javascript" src="jquery-1.7.2.min.js"></script> 
<script type="text/javascript"> 
$(document).ready(function() { 
$("select").click(function() { 
    var destino = document.formu0.list0.value 
    var lista = "#listaP"+destino; 
    $(lista).toggle(2000) 
}); 
}); 
</script> 

,並在另一個文件中,我有一個PHP代碼生成HTML代碼,menuP是包含標籤(顯示:無;填充右:10px的;):

echo '<tr>'; 
echo '<td>'; 
echo '<div id="lista0">'; 
echo '<form name="formu0">'; 
echo '<select size="10" name="list0">'; 
for ($i = 0; $i < count($cidades); $i++) 
    echo '<option value="'.($i).'">'.$cidades[$i][0].'</option>'; 
echo '</select></form></div></td>'; 

echo '<menuP>'; 
for ($i = 0; $i < count($cidades); $i++) 
{ 
    $k = 0; 
    echo '<td>'; 
    echo '<div id="listaP'.$i.'">'; 
    echo '<form name="formuP'.$i.'">'; 
    echo '<select size="6" name="listP'.$i.'">'; 
    for ($j = 0; $j < count($resultsA); $j++) 
     if ($resultsA[$j][0] == $cidades[$i][0]) 
     { 
      if(count($resultsA[$j])==6) 
       $tipo = 'Onibus'; 
      else 
       $tipo = 'Aviao'; 
      echo '<option value="'.($k).'">'.'Preco R$: '.$resultsA[$j][1].' Tipo: '. $tipo .'</option>'; 
      $k++; 
     } 
    echo '</select></form></div></td>'; 
} 
echo '</menuP>'; 

難道我做錯了什麼嗎?代碼並不儘管「DESTINO」和「LISTA」是與正確的價值觀,並與空白網站測試它的工作,它的工作原理。基本功能是隱藏/顯示與用戶點擊的城市相對應的特定數據列表。

+5

請張貼輸出HTML,我相信你會得到更多的幫助... – elclanrs

+0

-1,而不是因爲這個問題是特別不好,而是因爲你有很多不相關的PHP代碼。儘量保留你發佈的代碼,使其與相關的問題保持一致。這根本不是一個服務器端的問題,所以HTML和JS是唯一需要的東西。 –

回答

0

「menuP是包含標籤(顯示:無;填充右:10px的;)」

有你的問題。如果祖先元素不可見,則切換後代元素的可見性將不起作用。

這裏有一個小提琴演示:http://jsfiddle.net/32eXp/

你需要找到一種方法,讓<menuP>元素可見。

+0

也許在實際的應用有效的HTML標記將有助於DOM看到了嗎? –

+0

的DOM看到它並將其顯示爲一個內聯代碼。例如,查看http://jsfiddle.net/32eXp/1/。關閉'display:none;'關於'menuP'是需要的。 – pete

+0

menuP不是lista0的孩子。不過,我得到它的工作,原來我真的需要學習jQuery和CSS儘快:P 在任何情況下,謝謝:) –