2012-07-27 22 views
0

我希望它能像这样工作http://jsfiddle.net/jfriend00/JrhNz/6/,而不是css类我有ID。.slideToggle()在一个段落,而不是所有其他人使用相同的ID

试图用id而不是css类修改我的代码,它不起作用。

我的代码:

echo "<tr> 
     <td> 
      <p class=\"question\" id=\"question\">".$rand['nume']."</p> 
      <p class=\"answer\" id=\"answer\">".$rand['rasp']."</p> 
     </td> 
     </tr>"; 

$(document).ready(function(){ 
    $("#question").click(function(){ 
     var prev = $(this).prev("p#answer"); 
     $(this).siblings("p#answer").not(prev).slideUp("slow"); 
     prev.slideToggle("slow"); 
    }); 

    $("p#answer").click(function(){ 
     $(this).siblings("p#answer").slideUp("slow"); 
     $(this).slideToggle("slow"); 
    }); 
});​ 
+2

“有相同的ID”?没有元素应该具有与另一个ID相同的ID。 – Blazemonger 2012-07-27 16:41:14

+1

不要治疗症状,治疗原因 - 默认情况下,不应重复ID。 – 2012-07-27 16:42:15

+0

是的,ID必须是唯一的。替换这些ID并改为使用名称属性。 http://www.w3.org/TR/html401/struct/global.html#h-7.5.2 – Matthew 2012-07-27 16:45:58

回答

0

在你的代码为目标的类别在所有点替换"p#answer""p.answer"

没有元素应该与另一个元素具有相同的ID。如果页面上的两个或更多元素具有相同的ID,则JavaScript将始终停在第一个元素上,而忽略其余元素。

+0

它的工作,但现在当我点击问题时,段落向上滑动,他们不会滑下来,我再次点击一个问题。 – Alex 2012-07-27 17:01:58

+0

把它放在小提琴里 – Huangism 2012-07-27 17:23:36

相关问题