jQueryとAjaxに関して、私は物事の範囲に関して少し混乱しています。
スクリプトが起動します。
$(document).ready(function() {
var page = 'index';
displayContent(page)
});
displayContentは、テキストコンテンツをフェッチし、「#textCotnent」のdivにそれを押し込むためのAJAX呼び出しが含まれています。
関数I alert($( '#textContent')。text())内にある場合は、テキストを正しく通知します。
function displayContent(page) {
$.ajax(//ajax stuff goes here and works fine);
alert($('#textContent').text()) //alerts the text, hooray.
}
しかし、私は次の操作を実行した場合:
$(document).ready(function() {
var page = 'index';
displayContent(page)
alert($('#textContent').text()); //alerts a blank box, boo.
});
テキストは、AJAX呼び出しごとに表示されますが、警告がnullをポップアップします。
$( '#textContent')はスクリプト内でどこで呼び出されたとしても問題ありませんが、これは当てはまりません。
jQueryについてわからないことはありますか?
Ajaxコールバックを 'displayContent'の中に置くと' alert($( '#textContent')。text()) 'が入りませんでしたか? jQueryの問題ではない可能性が高いですが、応答が返る前に 'alert'を呼び出しています。 –
再確認します。しかし、私の質問は変わりません。それはなぜ重要なのでしょうか? –
私はjQuery/javascriptが非同期に実行されるので、あなたが望む振る舞いをするためには、コールバックを使用する必要があります。 –