Php 使用.slideToggle和动态生成的div
我在while循环中创建了div,显示了一个MySQL查询。我想用.slideToggle隐藏并显示它们。我不能使用一个类,因为这样会触发页面上的每个特定div向下滑动 我认为这会在while循环中重复,并找到最接近的toggleSectionDyn div id。显然不是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
<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;
});