2013-02-17 51 views
1

我在.php中有下面的代码(为了更容易理解编辑代码)。php,jquery只有第一个id工作正常

while($row = mysql_fetch_array($biznis)){ 
<div id='listItem'> 
    <div id='listPic'> 
     <img src='../../social/images/avatar/empty_avatar_full.jpg'></img> 
    </div> 
    <div id='listCont'> 
     <span>abcde<i>(request pending)</i></span>        
    </div> 
    <div id="listInfo"> 
     <span id='info'>More info</span> 
    </div> 
    <div style='clear:both;'></div> 

    <div id='moreInfo'> 
     <span>Invitation sent: xx-yy-zzzz</span> 
    </div> 
</div> 

<div style='clear:both;'></div> 
} 

所以代码没什么特别的,我只是从表中排列所有记录。 所以现在,这里是问题,你可以看到,我对相同的元素使用相同的id。所以这里

jQuery代码

$(document).ready(function() { 
    $("#moreInfo").hide(); 

    $("#info").click(function(){ 
    $("#moreInfo").slideToggle(); 
}); 
}); 

OK,现在的问题。只有第一个div(#moreinfo)被隐藏,所有其他的被显示。只有第一段(#info)切换滑块。

我试着把计数器放在ids和jquery的每个函数中,但没有一个真正按我的想象工作。

Ty,Sebastian

+1

这听起来像你已经发现的问题(多元素与相同的'id')。您尝试使用的解决方案究竟出了什么问题?你可能会考虑使用类。 – 2013-02-17 15:32:40

+1

你不能有重复的ID。改为使用类选择器。 – Tchoupi 2013-02-17 15:34:26

回答

3

元素ID应为唯一该元素的标识符。使用类名仿制选择:

<? while($row = mysql_fetch_array($biznis)): ?> 
<div class="listItem"> 
    <div class="listPic"> 
     <img src="../../social/images/avatar/empty_avatar_full.jpg"></img> 
    </div> 
    <div class="listCont"> 
     <span>abcde<i>(request pending)</i></span>        
    </div> 
    <div class="listInfo"> 
     <span class="info">More info</span> 
    </div> 
    <div style="clear:both;"></div> 
    <div class="moreInfo"> 
     <span>Invitation sent: xx-yy-zzzz</span> 
    </div> 
</div> 
<div style="clear:both;"></div> 
<? endwhile; ?> 

,改变你的jQuery来:

$(function() { 
    $('.moreInfo').hide(); 
    $('.info').click(function() { 
     $('.moreInfo').slideToggle(); 
    }); 
}); 

编辑

$('.info').click(function() { 
    $(this).parent().siblings('.moreInfo').slideToggle(); 
}); 
+0

Ty :)工作现在好了,只剩下一个小问题。当我点击更多的信息(跨度)时,所有的“listItem”-s都会下滑,任何提示或快速解决方案? :) – Sebastjan 2013-02-17 15:39:47

+1

当你点击信息时你想发生什么?你想要显示最近的'moreInfo'吗? – hohner 2013-02-17 15:42:10

+0

查看更新的答案 – hohner 2013-02-17 15:49:08

3

使用类而不是id,因为您处于while循环。一个id只存在一次。

并更新你的JS。

相关问题