0

我有以下动画:

           $(this).animate({
              marginLeft: '-25%',
              width: "50%",
              minWidth: '400px',
              maxWidth: '700px',
              padding: 0,
              minHeight: "580px",
              height: 'auto',
              borderRadius: 0
            }, 1000, function () {
              alert("I'm not being displayed!!");
              $(this).addClass('completed');
            });

一切似乎都很好,但在 IE7 或 8 中没有调用回调。为什么会这样?我删除了borderRadius之后的最后一个逗号,它修复了原始动画问题,但现在这是新问题。任何人都可以帮忙吗?

编辑:

带有标点错误的最终警报实际上并不在代码中,我只是将它放在那里以避免人们指出 addClass 部分可能是问题所在!

4

3 回答 3

4

在“我”中添加一个转义

  $(this).animate({
                      marginLeft: '-25%',
                      width: "50%",
                      minWidth: '400px',
                      maxWidth: '700px',
                      padding: 0,
                      minHeight: "580px",
                      height: 'auto',
                      borderRadius: 0
                    }, 1000, function () {
                      alert('I\'m not being displayed!!'); // needed an escape
                      $(this).addClass('completed');
                    });
于 2013-01-29T17:27:14.087 回答
1

你也可以试试这个:

$(this).animate({
          marginLeft: '-25%',
          width: "50%",
          minWidth: '400px',
          maxWidth: '700px',
          padding: 0,
          minHeight: "580px",
          height: 'auto',
          borderRadius: 0
        }, 1000).promise().done(function(){
          alert("I'm not being displayed!!"); // <---use double quotes or escape them
          $(this).addClass('completed');
        });
于 2013-01-29T17:30:39.313 回答
1

对于任何有兴趣的人,我都发现了问题所在。显然 IE 7 和 8 在处理height: 'auto'animate 函数时存在问题,这导致它无法触发回调。

我决定使用反复试验来注释某些属性,直到我在阅读了这个问题的答案后找到了罪魁祸首 - jQuery example (in jsfiddle) working in firefox but not in IE8, 7 - by Jeff B

于 2013-01-30T13:33:38.003 回答