Javascript &引用;“更多”;按钮仅展开一个特定的div
我的jquery代码有问题。我有两个部分(续)。在这台铸币机上,我有类似的结构。代码如下。我想做的是,当我在第一个容器中单击“更多”按钮时,我只想在此分区中显示隐藏信息。当我在第二个容器中单击“更多”时,我只想在此分区中显示隐藏信息。如何操作?现在我的按钮展开所有div中的所有隐藏信息Javascript &引用;“更多”;按钮仅展开一个特定的div,javascript,jquery,Javascript,Jquery,我的jquery代码有问题。我有两个部分(续)。在这台铸币机上,我有类似的结构。代码如下。我想做的是,当我在第一个容器中单击“更多”按钮时,我只想在此分区中显示隐藏信息。当我在第二个容器中单击“更多”时,我只想在此分区中显示隐藏信息。如何操作?现在我的按钮展开所有div中的所有隐藏信息 $('.info').hide(); $('.show info')。单击(函数(){ $('.info').slideToggle(“快速”); }); adsadasdasd Lorem ipsum do
$('.info').hide();
$('.show info')。单击(函数(){
$('.info').slideToggle(“快速”);
});代码>
adsadasdasd
Lorem ipsum dolor sit amet,奉献精英。作为一名建筑设计师,他认为建筑的基本原则是:必须选择最合适的质量标准,并对其在节约、社会需要方面的独特性表示赞赏。
adsadasdasd
Lorem ipsum dolor sit amet,奉献精英。作为一名建筑设计师,他认为建筑的基本原则是:必须选择最合适的质量标准,并对其在节约、社会需要方面的独特性表示赞赏。
使用next()
函数查找下一个信息并切换它。另外,如果您想在页面加载时隐藏它们,请使用css调用hide on onload或将它们保持在display none中
$('.show info')。单击(函数(){
$(this.next(.info”).slideToggle(“fast”);
});代码>
adsadasdasd
Lorem ipsum dolor sit amet,奉献精英。作为一名建筑设计师,他认为建筑的基本原则是:必须选择最合适的质量标准,并对其在节约、社会需要方面的独特性表示赞赏。
adsadasdasd
Lorem ipsum dolor sit amet,奉献精英。作为一名建筑设计师,他认为建筑的基本原则是:必须选择最合适的质量标准,并对其在节约、社会需要方面的独特性表示赞赏。
使用以下代码:
$('.info').hide();
$('.show info')。单击(函数(){
$('.info').slideUp('fast');
$(this).closest(.row”).find(.info”).slideToggle('fast');
});代码>
adsadasdasd
Lorem ipsum dolor sit amet,奉献精英。作为一名建筑设计师,他认为建筑的基本原则是:必须选择最合适的质量标准,并对其在节约、社会需要方面的独特性表示赞赏。
adsadasdasd
Lorem ipsum dolor sit amet,奉献精英。作为一名建筑设计师,他认为建筑的基本原则是:必须选择最合适的质量标准,并对其在节约、社会需要方面的独特性表示赞赏。
当我在第二个容器中单击“更多”时,我只想在这个div中显示隐藏的信息
现在我的按钮展开所有div中的所有隐藏信息
问题是您正在使用
$(".info").slideToggle()
上面写着:滑动将所有项目与类.info
进行切换-相反,您只需要限制与单击的按钮匹配的.show info
您可以在事件处理程序中使用this
根据这些信息,查找相关项取决于HTML结构,并且对于每个场景都是不同的。就本问题而言:
$('.info').closest(".row").hide();
$('.show-info').click(function(){
$(this).closest('.row').next().slideToggle("fast");
});
其中每个信息/显示信息都位于后续的行上
(.nextAll().first()
的OPs注释与.next()
相同-您通常会使用.nextAll(filter.first()
)
(您还需要更改初始的隐藏
,使其隐藏行
行以匹配幻灯片)
更新:假设问题/评论中描述了以下html:
<div class="container">
<div class="row">
<p>some info</p>
<a href="#" class="btn btn-default show-info">more</a>
</div>
<div class="row">
<div class="info">
<div>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Porro perspiciatis sequi, modi architecto assumenda perferendis tenetur sunt optio quaerat est id atque, laudantium numquam distinctio sint provident, necessitatibus nobis nesciunt.</div>
</div>
</div>
<div class="row">
<p>second row of info</p>
<a href="#" class="btn btn-default show-info">more</a>
</div>
<div class="row">
<div class="info">
<div>Second set of expanded info.</div>
</div>
</div>
</div>
最好的方法是找到当前行中的隐藏信息并滑动切换
请看一下代码片段:
adsadasdasd
Lorem ipsum dolor sit amet,奉献精英。作为一名建筑设计师,他认为建筑的基本原则是:必须选择最合适的质量标准,并对其在节约、社会需要方面的独特性表示赞赏。
adsadasdasd
Lorem ipsum dolor sit amet,奉献精英。作为一名建筑设计师,他认为建筑的基本原则是:必须选择最合适的质量标准,并对其在节约、社会需要方面的独特性表示赞赏。
$('.info').hide();
$('.show info')。单击(函数(){
$(this.parent().find('.info').slideToggle(“fast”);
});
您需要使用此
以确保它只展开相关按钮。考虑到您当前的html,这可能是:$(this).nextAll(“.info”).first().sldieToggle()代码>修复缩进使其更加明显和健壮:$(this).closest(“.row”).find(“.info”).slideToggle()
@freedomn-m如果我有这个结构并且我想在我的按钮后展开第一个div怎么办?然后使用“.nestest(“.container”)`假设每一行对都在它自己的容器中(根据您的问题代码)。您应该能够通过组合使用.closest()
和/或.nextAll(.class”).first()找到它。这个问题的关键是你需要使用这个
,因为这个问题是关于显示一个,而不是全部。@freedomn-m这对我很有用。谢谢大家!$(this).closest('.row').nextAll().first().slideToggle(“fast”);请解释你做了什么,不是每个人都在寻找答案。当你点击链接,然后首先隐藏所有打开的div,然后在当前div中找到.info
。打开..这不是.next()
的工作方式。它返回下一项,然后将其过滤到类中。因此,您要么得到一项,要么一项也没有,因此不需要.first()
,也不需要“查找所有下一个信息”-替换为.nextAll()<div class="row" style='display:none'>
<div class="info">