一个简单的显示或隐藏项.文本按钮
本文关键字:隐藏 文本 按钮 显示 一个 简单 | 更新日期: 2023-09-27 18:17:17
我有一个mvc 5项目使用数据库。在我的项目中,我有一个博客页面。此页面是通过控制器加载的。在页面中,我使用简单的@foreach(var item In collection)动态创建了一个项目列表(blogitems)。每个项目都有一个id(当然),一个标题和一个描述。
@foreach (var item in Model.VmBlogItems)
{
<div class="allblogs">
<div class="blogtitle">
<h4>@item.Title</h4>
</div>
<div id="allblogcontent">
@item.Description
</div>
<a id="moreless" href="">Lees meer</a>
</div>
}
我现在的问题是如何创建一个按钮,这样当点击它的描述是隐藏或显示。
我还写了一些jquery:
<script type="text/javascript">
//when ready
$(function () {
$('#allblogcontent').hide();
$('#moreless').click(function () {
$('#allblogcontent').toggle();
});
});
</script>
然而,当我这样做时,我所有的项目显示或隐藏的描述。
有人知道我是如何确保只显示或隐藏所选项目的描述的吗?我只是花了6个小时阅读,试着读,但遗憾的是没能成功。我需要一些帮助。
首先修改标记,使每个描述标签附带一个唯一的id,并且相应的按钮有对该id的引用
@{
int i=0;
}
@foreach (var item in Model.VmBlogItems)
{
i++;
<div class="allblogs">
<div class="blogtitle">
<h4>@item.Title</h4>
</div>
<div id="allblogcontent@i" class='someclass'>
@item.Description
</div>
<a id="moreless" href="" data-desc-id='allblogcontent@i'>Lees meer</a>
</div>
}
你的代码现在可以分辨出哪个是哪个了
<script type="text/javascript">
//when ready
$(function () {
$('.someclass').hide();
$('#moreless').click(function () {
$('#' + $(this).attr('data-desc-id')).toggle();
});
});
</script>
一个脚注
此方法将在标记之间创建静态引用,因此您可以根据需要移动标记。到目前为止,如果更改标记的顺序,这里展示的其他两个解决方案将中断。
把下面的部分改成
$('#moreless').click(function () {
$('#allblogcontent').toggle();
});
$('#moreless').click(function () {
$(this).siblings('#allblogcontent').toggle();
});