2011-12-19 24 views
1

私は負荷にリサイズ画像処理を行うスクリプトを持っています。jQueryの、画像や負荷は()

今、私はajaxを使ってHTML要素を取得していますが、その中にはサイズ変更が必要な画像がクラス「画像」に含まれているものがあります。しかし、上記のスニペット(ajax htmlの本文にあるとき)は起動しません。何とかこのイベントを追加するにはどうすればよいですか?私はready()を試しましたが、幅/高さを取得する前に起動します。おかげ

私も試してみました:

$('.image').on('load', function() { 
     // $(this).happens 
}); 

答えて

1

あなたのコードは、最初のページのロード時にクラス「.image」とのすべての画像にコールバック関数を登録します。後でAJAXリクエストを介してさらにイメージをロードすると、それらのコールバックは登録されないので、サイズ変更は行われません。

DOMにまだ存在しない要素のコールバックを登録する必要がある場合は、live()関数のjQueryを使用する必要があります。そうすれば、より多くの要素を追加してコールバックをそれらのプロパティに登録することができます。

詳細については、例とofficial jQuery live() documentationを参照してください。

+2

jQuery 1.7以降では、['$ 'セレクタ'を使用する必要があります。 、セレクタ、データ、ハンドラ); '](http://api.jquery.com/on/)メソッド。 – Shef

+0

Nice to know :)まだ1.7のドキュメントをチェックアウトしていません。今やろう。どうも! –

+0

今それを読んでいる今thx – Timmy

1

私はこれをolder postが示唆していると思います。あなたのajaxコールバックでは、trigger('images_loaded')のようなトリガを実行し、トリガにバインドされたバインドでサイズ変更を行います。

+0

そんなことは考えても、画像が読み込まれずに早く消えてしまうかもしれません。 – Timmy