6

サーバーから新しいレコードを取得した後、jQuery 1.7.2 の AJAX 成功コールバックを使用して、新しいレコードをリストに追加し、フェードインします。

function onSuccess (data, status, xhr) {
    var record = $(template_html);

    // populate `record` with `data` values.

    body.append(record); // body is a jQuery object from closure scope
    record.fadeIn('fast');
}

次のブラウザでこれをテストしました。

  • IE8
  • IE9
  • サファリ5.1.7
  • Firefox 14.0.1
  • クローム 21.0.1180.79
  • オペラ 11.64

Chrome を除いて、上記のすべてのブラウザーで一貫して動作します。Chromeで時々動作します。

Chrome で失敗した場合、[要素の検査] をクリックするか、開発者ツールの [要素] タブを表示するか、または を使用して Javascript コンソールに出力された DOM 要素をクリックするconsole.log(record)と、新しいレコードが表示されます。

DOM 要素が正しく作成、設定、および追加されていることはわかっています。問題は、Chrome が DOM の再レンダリングを拒否する場合があることです。時々。

変更ありまたはなしで交換fadeInしてみました。showfadeTo

「同様の質問」の回答はどれもうまくいきませんでした。レコードのマークアップは<div>s in <div>s であり、無効な HTML が問題であるかどうかを確認するために、新しいレコードを追加する前後にページを検証しました。

考えやアイデアはありますか?

4

1 に答える 1