jQuery 在 div 中显示更多/显示更少切换高度

标签 jquery css jquery-animate addclass removeclass

我有一个包含图像的 div,我希望它的高度为 440 像素,并带有一个“显示更多”按钮,使其达到全高 (2750 像素)。当处于全高状态时,我希望显示更多按钮显示为“显示更少”,并且当我单击它时功能会反转。

这是我的代码:

 $('#photo_container').css('height','440px');
$('#photo_container').css('overflow','hidden');
$('.show_more').click(function(){
$('#photo_container').animate({'height':'2750px'},500);
$('.show_more').html('<h4>Show Less</h4>');
$('.show_more').addClass('show_less');
$('.show_more').removeClass('show_more');
});                        
$('.show_less').click(function(){
$('#photo_container').animate({'height':'440px'},500);
$('.show_less').html('<h4>Show More</h4>');
$('.show_less').addClass('show_more');
$('.show_less').removeClass('show_less');

});

和我的 HTML:

<div id="photo_container">
PHOTOS HERE...
</div>
<div class="show_more"><h4>Show more</h4></div>

我的代码允许我扩展,但它不会以相反的方式工作 (show less)。谁能给我解释一下这是为什么

最佳答案

改为将您的事件更新为:

$(document).on('click', '.show-less', function() {
$(document).on('click', '.show-more', function() {

因为您正在更改类,所以您需要绑定(bind)到类而不是元素。

关于jQuery 在 div 中显示更多/显示更少切换高度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23688383/

相关文章:

javascript - CDATA 真的有必要吗?

javascript - 如何从超链接将调用的事件发送到 JS 函数

php - CSS/HTML 超链接从表单 CSS 中断

javascript - 为什么我可以在 styled-components 上引用一个组件而其他人不能?

html - 如何在同一行中同时写 h1 和 h2?

javascript - 设置元素的 margin-left 和 width 以匹配另一个元素的 margin 和 size

javascript - 检测页面是否可以滚动

jQuery animate() - 多个选择器和变量,独特的 animate() 调用

jquery - CSS3 动画,转换到位置

javascript - 在 jQuery 中创建一个包含多个 DOM 元素和动画的动画队列并按顺序触发它们?