ドキュメントでテーブルを使用していますが、ユーザーが新しいアイテムをリストに送信して、リストの一番上に「自動的に」表示されるようにしたいと考えています(はい、これはDIVの方が簡単ですが私が持っているもので作業しています)。
私はjQueryを使用しておりclone()
、最新のテーブル行のコピーを作成し、fadeIn()
更新してリストの一番上に追加した後、を使用して新しいアイテムを表示しています。内部的にjQueryは要素(DIVを想定)を「ブロック」に変換するため、cssクラスも「テーブル行」に変更します。正常に動作します。
コード全体はここにあります:
var row = $("tbody tr:first").clone().hide(); // clone and then set display:none
row.children("td[class=td-date]").html("today");
// set some properties
row.children("td[class=td-data]").html("data");
row.children("td[class=td-type]").html("type");
// fadeIn new row at the top of the table.
row.insertBefore("tbody tr:first").stop().fadeIn(2000).css("display","table-row");
問題は、プロセスの実行が速すぎる場合、つまり、fadeInが完了する前に、「clone()」コマンドが不透明度のクローンを作成してしまうことです。
上記の最初の行を調整することで、Firefoxで実際に動作させることができます。
var row = $("tbody tr:first").clone().css("opacity","1").hide();
今の私の懸念は、これらのいずれかが効率的に行われていること、および/または「不透明度」がクロスブラウザで安全に信頼できるかどうかわからないことです。
誰かが以前にこのようなことをしたことがあり、より信頼性の高いアプローチに関する指針を提供できますか?