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

「I'm」にエスケープを追加

  $(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

興味のある人のために、私は問題が何であるかを知りました。height: 'auto'どうやら IE 7 と 8では、animate 関数内での処理に問題があり、コールバックが起動されなかったようです。

この質問に対する回答を読んだ後、犯人が見つかるまで、試行錯誤を使用して特定のプロパティをコメントアウトすることにしました-jQueryの例(jsfiddle内)はfirefoxで動作しますが、IE8、7では動作しません- by Jeff B

于 2013-01-30T13:33:38.003 に答える
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 に答える