代码之家  ›  专栏  ›  技术社区  ›  Mathieu Mourareau

ajax按钮foreach[副本]

  •  -1
  • Mathieu Mourareau  · 技术社区  · 5 年前

    我在.php中有以下代码(为了更容易理解,对代码进行了编辑)。

    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();
    });
    });
    

    好的,现在问题来了。只有第一个div(moreinfo)被隐藏,所有其他的都显示出来。只有第一个跨度(info)是切换滑块。

    我试着为ids设置计数器,并对每个函数进行jquery,但没有一个能像我想象的那样工作。

    塞巴斯蒂安

    0 回复  |  直到 11 年前
        1
  •  3
  •   hohner    11 年前

    元素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();
    });
    
        2
  •  3
  •   CaptainMat    11 年前

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

    更新你的js。