Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/71.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
Php 使用.slideToggle和动态生成的div_Php_Jquery_Mysql_Slidetoggle - Fatal编程技术网

Php 使用.slideToggle和动态生成的div

Php 使用.slideToggle和动态生成的div,php,jquery,mysql,slidetoggle,Php,Jquery,Mysql,Slidetoggle,我在while循环中创建了div,显示了一个MySQL查询。我想用.slideToggle隐藏并显示它们。我不能使用一个类,因为这样会触发页面上的每个特定div向下滑动 我认为这会在while循环中重复,并找到最接近的toggleSectionDyn div id。显然不是 <div class="actions"><a href="#" id="toggleButtonDyn">Add</a></div> <div id="toggleSe

我在while循环中创建了div,显示了一个MySQL查询。我想用.slideToggle隐藏并显示它们。我不能使用一个类,因为这样会触发页面上的每个特定div向下滑动

我认为这会在while循环中重复,并找到最接近的toggleSectionDyn div id。显然不是

<div class="actions"><a href="#" id="toggleButtonDyn">Add</a></div>
<div id="toggleSectionDyn">Some content</div>
<script>
  $("#toggleButtonDyn").click(function(){
    $(this).closest("#toggleSectionDyn").slideToggle("slow");
    return false;
  });
</script>

一些内容
$(“#toggleButtonDyn”)。单击(函数(){
$(此).toggleSectionDyn.slideToggle(“慢”);
返回false;
});

编辑:不推荐使用live。考虑使用.[())/P> 您想使用
.live()

从api

通过使用事件委派,.live()方法能够影响尚未添加到DOM的元素:绑定到祖先元素的处理程序负责在其子元素上触发的事件。传递给.live()的处理程序从未绑定到元素;相反,.live()将一个特殊的处理程序绑定到DOM树的根

现在,重读一遍,我想知道你到底在问什么。您还必须确保每个<代码> <代码>必须有一个唯一的ID。您可以考虑您<代码>。下一步(“DIV”)< /COD>而不是<代码>。 根据评论中的讨论,我将使用.next('div')查看昨天修改的JSFIDLE问题


另外,我强烈建议使用唯一ID。如果它们不能是唯一的,则将它们设置为类

如果重构一点,您可以针对您所追求的div。(也许我忽略了这个问题,但我的解决方案非常直截了当)


一些内容

一些内容

$(“.actions a”)。单击(函数(){ $(this.next('p')。滑动切换(“slow”); 返回false; });

我想这取决于你在哪里生成的
。如果要隐藏整个MySQL结果集,还是要一次显示/隐藏每一行?

matchew!你回来了。是--我希望避免尝试分配唯一的div id。因为我试图显示的信息是从数据库生成的,所以我认为生成唯一的ID也会更加困难。我想我也需要有独特的jQuery脚本。哦,嗨,安德鲁!否,您必须分配唯一的ID。这只是x/HTMLID的规则之一,必须是唯一的,而类可以重用。但是我建议使用.next('div')。看看昨天JSFIDLE的一个修改版本——看看如何使用.next()。一定要用这个。另外,当你找到一个合适的答案时,别忘了向上投票,并通过使用答案旁边的箭头来接受它。请看这个=>我被一个链接而不是按钮绊倒了。现在是抓下一个div的时候了。太好了!try.parent('div')。next('div')将其视为层次结构。你需要上去,然后下一个。因为接下来什么都没有了
 $("#toggleButtonDyn").live('click', (function(){
    $(this).closest("#toggleSectionDyn").slideToggle("slow");
    return false;
  });
<div class="actions">
    <div><a href="#">Add</a>
        <p>Some content</p></div>
    <div><a href="#">Add</a>
        <p>Some content</p></div>
</div>

  $(".actions a").click(function(){
    $(this).next('p').slideToggle("slow");
    return false;
  });