更新(一部の人は私を信じていないので、笑)
.append
最初にノードを作成してから、適切な位置に移動するためです。最初に要素を追加してから、次のようにその属性を追加してみてください。
$(function() {
$("#test").append(
$("<img />").attr({
src: "http://upload.wikimedia.org/wikipedia/commons/thumb/1/1a/Bachalpseeflowers.jpg/300px-Bachalpseeflowers.jpg",
onload: "alert(\'hi\')"
})
);
});
私の答えは問題を「回避」するのではなく、非常に直接的に答えます。jQuery.jsファイルを非圧縮形式で開くと、イベントが最初に呼び出されたときにドキュメント上に作成され、次にイベントが再度呼び出されたときにその位置に.append
作成されることがはっきりとわかります。おそらくシフトは間違った言葉です。語彙は私の強いスーツではないので、許してください。ただし、コードに従うと、その作成と移動が表示されますが、ノードがすでに作成されているため、再度追加を使用して移動する場合も同じではありません。ノードは、オンロードの再スパークなしで、ある要素から別の要素に移動するだけです。私が言ったように、最良の用語はわかりませんが、jQuery.jsをフォローするのは非常に簡単です。node
onload
shifts
私を信じないの?MSIE9、FF12、およびGoogleChrome20で次のフィドルをテストしましたが、問題はありませんでした。
参考までに、それは実際にはひどい習慣ではありませんが、人々は常にjQueryでHTMLの全行を記述しているのを見て、そのようなことは目的を打ち破ります。わざと読む本がたくさんある図書館です。HTMLの完全な行は簡単に見える場合もありますが、これまでに行われたすべての優れたレイアウト作業に従わないため、高速ではない場合があります。アイデアは「書く量を減らし、より多くのことをする」ことであり、これにはHTMLが含まれます。結局のところ、HTMLの全行を書くつもりなら、PHPだけでjQueryを使用できるのに、なぜjQueryを使用するのでしょうか。:Pただの考え。