我正在尝试构建一个盒子容器,当单击“阅读更多”按钮时会展开,并在单击同一按钮(现在是“折叠”按钮)时折叠到初始大小。
在 DOM 中,我在容器.leer-mas
内有一个按钮。.post
以及以下 jQuery 代码:
//When link with class .leer-mas is clicked, get the parent element's id and add some css attributes
$('.leer-mas').click(function() {
var item = $(this).closest('.post');
item.css('height', 'auto');
$(this).addClass('leer-menos');
$(this).text('Leer menos');
});
//When link with class .leer-mas is clicked, get the parent element's id and remove some css attributes
$('.leer-mas.leer-menos').click(function() {
var item = $(this).closest('.post');
item.removeAttr('height');
$(this).removeClass('leer-menos');
})
第一个动作就像一个魅力。但是第二个动作什么都不做......而且我认为我缺少 jQuery 的一些基础知识,因为语法是相同的,也许这不是它应该的方式:)
有任何想法吗?谢谢。
编辑 - 我的代码有一些错误。尽管我仍在尝试使用单个切换器来获得它,但我有一个工作版本。
新的 DOM 看起来像这样:
<div class="post">
<div class="leer mas">
</div>
<div class="leer menos">
</div>
</div>
代码现在如下所示:
//When link with class .leer-mas is clicked, get the parent element's id (which is also that element's id in the database)
$('.leer.mas').click(function() {
var item = $(this).closest('.post');
//Send the id to the PHP script, which returns 1 if successful and 0 if not
item.css('height', 'auto');
$(this).hide();
$(this).next('.leer.menos').show();
});
//When link with class .leer-mas is clicked, get the parent element's id (which is also that element's id in the database)
$('.leer.menos').click(function() {
var item = $(this).closest('.post');
//Send the id to the PHP script, which returns 1 if successful and 0 if not
item.removeAttr('style');
$(this).hide();
$(this).prev('.leer.mas').show();
});
这工作顺利。但是,如果我让它使用原始问题的预期结构(使用单个按钮),我会更高兴:)