行く記憶の流れは絶えずして

戻ってこないのでメモするところ

jqueryのloadのcallbackでハマる

loadで持ってきたDOM要素に対してコールバックのタイミングでjqueryセレクタが機能しない。

下記のalert文の時点でURLの要素が何も表示されてないことより確認。

ブラウザ依存(環境はFirefox)?他は未確認。

$("#id").load("URL",null,function(){

    alert(URLの要素)

    URLから取得した要素に対しイベント追加

});

悔しいので

  • 2行に分けて$("#id").ready(function()…にして区切ってみる
  • コールバックをsetTimeoutで明示的に遅らせてみる

とかとかいろいろ試した結果、

$.get(URL,{},

    function(data){

        dataにイベントを追加

        $("#id").html(data)

    },

    "html"

);

に落ち着きました。

load()はDOM操作のない情報に対して向いているという解釈でいいのかな。

load()は$.get()に対して記述が楽以外のメリットがないと使わないほうが紛れがないですね。

load()も結局パラメータなしのGETリクエストなので。

jqueryのパフォーマンスで上回るとかあるのかもしれない。