2012-06-20 212 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 在任何情况下,谢谢:) –