0

これは奇妙なものです。jquery を使用して、コンテナー オブジェクトを作成し、それを視覚的に非表示にして、AJAX コンテンツを読み込み、コンテンツが読み込まれると表示したいと考えています。

奇妙なのは、オブジェクトに境界線が指定されている場合にのみオブジェクトを非表示にしているように見えることです。例:

これは機能します:

tr.find('td')
    .html("<div class='inlineLoading'>loading...</div>"
         + "<div "
         +    "class='loadedContent' "
         +    "style='background: green; border: 1px solid red;'>"
         + "</div>"
    )
;

var container = tr.find('div.loadedContent');
container.hide('slow',loadContent(container,dataURL));

loadContent 関数:

function loadContent(container,dataURL) {  
    container.load(dataURL)  
}  

上記を実行すると、意図したとおりに動作します。赤い境界線を持つ DIV が作成され、ゆっくりと非表示になることがはっきりとわかります。レンダリングされたソースを表示すると、ajax 呼び出しがコンテンツもロードしていることを確認できます。

ただし、上から赤い境界線を省略すると、それ自体が隠れることはありません。div は (緑色の背景で) 明確に読み込まれ、それ自体を非表示にせず、LOAD 呼び出しからコンテンツを読み込みます。

ここで何が起こっているのかについて何か考えはありますか? これはすべて Firefox で実行されています。

4

1 に答える 1

0

これを簡単にデバッグするには、コンテンツを非表示にせず、最初に div にロードして、正常に動作するかどうかを確認してから、非表示と表示を行います。このようにして、何がdivに入るかがわかります。これは、ajaxからプルするだけで、div内に挿入されない可能性があるためです。

于 2009-10-23T21:40:07.507 に答える