вы объявили переменную num
внутри вашего почтового обратного вызова, так что за пределами этой функции переменного явно не определен
Но даже если вы определяете его снаружи, его значение выиграло 't будет отображаться так, как вы ожидали, поскольку ajax является асинхронным (так что, когда вы предупреждаете эту переменную, вызов ajax все еще работает)
, если вам нужно, чтобы номер num даже снаружи вызывал другую функцию, передающую переменную, например
$.post(
"index.php?component=static_content&action=rules_count",
{ region:rname,page_url:page_url},
function(data1) {
alert(data1);
continueProcess(data1);
}
});
var continueProcess = function(num) {
alert(num);
}
или использовать Deferred Objects
(с Ajax методы возвращают обещание поскольку jQuery 1.5
) вы также можете сделать
$.when($.post(...).done(function(num) {
alert(num)
});
, если кто-то объяснит нижний предел, я мог бы улучшить свой ответ (и я сам) – fcalderan