1

这是一个显示问题的jsFiddle

我不确定为什么这不起作用:

if ($('#menu').width() == '200px') {
    alert("what");
}

我希望在动画完成时出现警报。所以我假设我可以说,当动画完成后,元素的宽度为 200px,它会显示警报。

4

4 回答 4

5

1)您在动画完成之前检查值。

2)您的宽度值将是“200”而不是“200px”

这是 jQuery 文档。您需要在代码的回调部分执行检查。

$('#clickme').click(function() {
  $('#book').animate({
    opacity: 0.25,
    left: '+=50',
    height: 'toggle'
  }, 5000, function() {
    // Animation complete.   <---- your value check code goes here
  });
});
于 2013-02-28T19:51:01.293 回答
3

jQuery.width返回一个数字。您正在与字符串进行比较。

于 2013-02-28T19:49:24.497 回答
2

检查更新的小提琴。我所做的是添加了一个“回调”函数,该函数在动画完成时执行。

$(this).stop().animate({ width: "200px" }, 250,
  function(){if ($('#menu').width() == '200') { alert("what"); } /* Callback Function */
 });
于 2013-02-28T19:55:41.277 回答
1

.width()应该返回一个数字,而不是 "###px" 值, Try if ($('#menu').width() == 200) {

于 2013-02-28T19:51:28.863 回答