Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
jQuery幻灯片切换到下一个类而不是下一个同级_Jquery_Loops_Slidetoggle_Next - Fatal编程技术网

jQuery幻灯片切换到下一个类而不是下一个同级

jQuery幻灯片切换到下一个类而不是下一个同级,jquery,loops,slidetoggle,next,Jquery,Loops,Slidetoggle,Next,我在一个while循环中从数据库中提取数据。一个项目包括迷你导航、数据库项目、与菜单相关的隐藏div。单击此菜单中的某个项目时,我希望从数据库项目下方滑出一个div 所以 while($row=mnysql\u fetch\u数组($q)){ 行数据 隐藏div 菜单 } 这里是幻灯片切换脚本 我的问题是我的jquery函数。它只选择兄弟姐妹。我需要从菜单里拿出来。那么,如何从菜单上方的列表项中选择隐藏的div呢 $(document).ready(function(){ //Sl

我在一个while循环中从数据库中提取数据。一个项目包括迷你导航、数据库项目、与菜单相关的隐藏div。单击此菜单中的某个项目时,我希望从数据库项目下方滑出一个div

所以

while($row=mnysql\u fetch\u数组($q)){
  • 行数据 隐藏div
  • 菜单 } 这里是幻灯片切换脚本
    我的问题是我的jquery函数。它只选择兄弟姐妹。我需要从菜单里拿出来。那么,如何从菜单上方的列表项中选择隐藏的div呢

    $(document).ready(function(){
        //Slide toggle for buttons
        $('.toggle-trigger').click(function(){
        $(this).next('.toggle').slideToggle();
      });
     });
    
                        `
    <ul class="comment-links">
    <li id="com-link">
        <a href="#" title="View Comments" class="view-comments toggle-trigger">View Comments</a>
        <div class="comments toggle">
            <p>bla bla</p>
        </div>
    </li>
    <li id="add-com-btn">
        <a href="#" title="Add a comment" class="add-comment-btn toggle-trigger">Add a comment</a>
        <div class="add-comment-form toggle">
            add comment form
        </div><!--end add comment form-->
    </li>
    <li id="down-btn">
        <a href="uploads/Test document.pdf" title="Download Document" target="_blank" class="dwnld-doc-btn-2">Download Document</a>
    </li>
    
    $(文档).ready(函数(){
    //按钮的滑动切换
    $('.toggle触发器')。单击(函数(){
    $(this).next('.toggle').slideToggle();
    });
    });
    `
    
    • 布拉布拉

    • 添加评论表单

    如果您可以为他们提供一个共享的父级,那么最好像这样使用纯javascript:

    尝试使用
    find
    方法,它只搜索子节点。对于每个li,我们可以在该li中找到.toggle触发器和.toggle元素,并为每个li添加单独的事件

    $('li').each(function(){
      var node = this;
      node.find('.toggle-trigger').click(function(){
        $(node).find('.toggle');
      });
    });
    

    如果无法为相关项提供共享父项,则必须为它们提供唯一的ID

    每个触发器都使用在php中生成的id与隐藏的div相关联
    $row.id
    该id使用自定义属性
    数据id
    存储。jquery然后使用这个id选择正确的元素。e、 g.
    toggle-3

    <?php while($row = mnysql_fetch_array($q)){ ?>
                <div class=".toggle" id="toggle-<?php $row.id?>">
    <?php }
          while($row = mnysql_fetch_array($q)){ ?>
                <div class=".toggle-trigger" data-id="<?php $row.id?>">
    <?php } ?>
    

    切换触发器
    元素在哪里您可以共享生成的html生成的html太长,无法包含。问题又来了:我在一个页面上用“toggle”类创建了多个div。我需要slidetoggle()来影响这些div。toggle触发器将与toggle类无关。目前,我的代码只适用于下一个兄弟类。所以toggle和toggle触发器必须是同级的。这是我的限制。您需要提供生成的html示例以及
    li
    -一个
    li
    元素将感谢您的建议。我认为我们彼此误解了。我需要在li和ul外部进行切换。toggle类需要应用于远离菜单(ul)的元素,如果它们不能位于唯一的父元素之下,则必须为它们提供自动生成的id
    <?php while($row = mnysql_fetch_array($q)){ ?>
                <div class=".toggle" id="toggle-<?php $row.id?>">
    <?php }
          while($row = mnysql_fetch_array($q)){ ?>
                <div class=".toggle-trigger" data-id="<?php $row.id?>">
    <?php } ?>
    
    $('.toggle-trigger').click(function(){
        var toggleId= 'togle-' + this.get('data-id');
        $('#'+ toggleId).slideToggle()
      });