DOMイベントに関する最高のリソース:http ://www.quirksmode.org/dom/events/keys.html
イベントハンドラー「search_buddy」が非同期のAJAXリクエストを起動しているようです。関数の残りの部分はAJAXリクエストと並行して実行されるため、$。postが返される前に「num」は未定義です。
// num is undefined here... unless your network has 0 latency
$("#Layer7").html(num);
このコード(上に貼り付けたもの)をコールバック関数でラップする必要があります。パラメータ番号3のようです:http:
//api.jquery.com/jQuery.post/
テストされていませんが、最も良い推測です:
function search_buddy() {
$.post("num.php", function (ret) {
num=ret;
$("#Layer7").html(num);
});
}
理解に役立ついくつかの変更を次に示します。
function search_buddy() {
alert("before the $.post execution");
$.post("num.php", function (ret) {
num=ret;
$("#Layer7").html(num);
alert("$.post callback");
});
alert("immediately after the $.post execution");
}
注:「アラート」はすべてのJavaScript処理を停止するため、どのイベントがいつ発生するかを確認できます。