2010-12-30 12 views
3

なぜですか? イメージタグで同じ問題が発生しています。

ready()コールバックが呼び出されます。 load()コールバックは呼び出されません。

ブラウザ:Macの

上Firefox3.6.8

編集:

私は何とか間違ってはJQueryで)私は負荷を(使用しています感覚を得ます。 ドキュメントは、私はを参照しています: - 。私は

$( "体" を)やっている http://api.jquery.com/load-event/

負荷(関数(){// が何か を行います});

これは正しくありませんか?私はいくつかのコードを参照してください: - $( "#id")。load( "./ newpage.html"); しかし、これらの2つのAPIは違っていますか?

編集2

ここに私の全体の問題を説明するためのいくつかのより多くのコード: -

var tagString = "<img id='"+imageId+"'></img>"; 
this.divElem.append(tagString); 
var imgElems = $("#"+imageId); 

var vowels = this; 
imgElems.each(function (index) { 
    $(this).attr('id',imgId).attr('src',imageUrl) 
       .attr('width',1).attr('height',1);  
     $(this).load(function() { 
      // do something. 
      // This Damned! function is never getting called! 
     }); 

}); 

作品

$().ready(function() { 
    $().load(function() { 
     /// something. this worked! 
    }); 
}); 

は動作しません

// without the ready() wrapper does not work 
    $().load(function() { 
     /// something. this worked! 
    }); 

なぜ?私はそれがうれしいです。しかし、私は理由を理解していない!誤った選択がエラーになりますけれども

-Ajay

答えて

3

技術的には、$("anything").ready()作品...それも、セレクタを見ていません。​​の場合はイベントハンドラなので、の後にをバインドしていないことを確認するか、既に発生したイベントをリスンする必要があります。あなたにリンクされたページ上の例のように

+0

どのように私は、イベントが発生した後、私は結合しないことを確認してくださいを参照してください? – user855

+1

@ajay - 後で何をしているかに応じて、readyハンドラの中にバインドしていないことを確認してください。読み込まれたすべての画像が単純に '$(window).load()'を必要とするかもしれません。 –

8

は、使用:

$(window).load(function(){ 
    // do something 
}); 

あなたがしようとしたようにbody要素にイベントをバインドすることは可能かもしれないが、その後、あなたがコードを配置する必要がありますそれを身体要素の内部で行うこと。あなたが頭にスクリプトを置くと(どこにスクリプトがあるか)、コードが実行されてもbody要素はまだ存在しません。

1

.ready()と.load()はまったく異なります。

$("body").ready(onBodyLoaded); 

は、この行は、ブラウザは、本体がロードされたときonBodyLoaded関数を呼び出すよう指示https://api.jquery.com/ready/

を参照してください。

var url = some url 
var data = {} 
$("body").load(url , data, onComplete(responseText, textStatus, XMLHttpRequest)) 

これは体内に、POST場合、データを渡し、URLを要求するためにブラウザに指示した後、onCompleteの関数を呼び出します。

https://api.jquery.com/load/

関連する問題