我的 javascript 代码有一个小问题。当我点击 .add-case 时,动画功能只工作一次。仍然每次都显示“开启”功能中的警报。

$(document).on('click', '.add-case', function(){
    height = $('.filling').height();
    alert('Works') // This shows every time I click
    $('.filling').animate({ height: $(this).height() + 40}, 600);
    // this only works once
});

任何人都可以提供帮助?

最佳答案

问题:

这里的问题是单击元素的 height 不会在单击时更改。因此,每次单击都会检索和更新相同的高度。

$(this).height()

将获得 单击元素 的高度。事件处理程序中的 $(this) 是发生事件的元素的 jQuery 对象。

解决方案:

使用相对大小 +=40 将高度增加 40。虽然也可以使用 $(elementSelector).height() + 40,但最好使用相对单位。



$(document).on('click', '.add-case', function() {
  $('.filling').animate({
    height: '+=40'
  }, 600);
});
.filling {
  height: 10px;
  width: 50%;
  background: yellow;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js"></script>
<div class="filling"></div>

<button class="add-case">Click</button>

关于javascript - 动画只工作一次,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33343425/

10-11 23:41