Лучший ресурс по событиям DOM: http://www.quirksmode.org/dom/events/keys.html
Похоже, ваш обработчик событий "search_buddy" запускает AJAX-запрос, который является асинхронным.Остальная часть функции выполняется параллельно с запросом AJAX, поэтому «num» не определено до того, как возвращается $ .post.
// 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");
}
Примечание: «alert» остановит всю обработку JavaScript, поэтому вы сможете увидеть, какие события происходят, когда.