在任何地方使用javascript变量

时间:2012-01-20 17:24:09

标签: javascript jquery ajax

这是我的jQuery函数,

$.post("assets/scripts/chat/get_user_info.php", {UserID: UserID}, function(data){
if (data == "error") {
alertBar('negative','There was an error sending the message');
}
var username = data;
})

但我只在函数本身中使用“data”或“username”变量,那么如何在整个页面中全局使用它呢?

8 个答案:

答案 0 :(得分:5)

在函数外部的全局范围中定义变量。

var username, data;

$.post("assets/scripts . . .

答案 1 :(得分:2)

无论

window.data = data

username = data

事情是,$.post是异步的,所以你将无法做类似......

$.post( ... )
alert(window.data);

答案 2 :(得分:1)

尝试

var globalData;
var username;

$.post("assets/scripts/chat/get_user_info.php", {UserID: UserID}, function(data){
    if (data == "error") {
        alertBar('negative','There was an error sending the message');
    }
    globalData = data
    username = data;
})

答案 3 :(得分:1)

你能做的是

  var myglobaldata = {};

$.post("assets/scripts/chat/get_user_info.php", {UserID: UserID}, function(data){
if (data == "error") {
alertBar('negative','There was an error sending the message');
}
  myglobaldata.username = data;
})

现在,您可以从任何地方访问myglobaldata.username

答案 4 :(得分:0)

您可以使用.data()将其保存为数据:

$.post("assets/scripts/chat/get_user_info.php", {UserID: UserID}, function(data){
    if (data == "error") {
        alertBar('negative','There was an error sending the message');
    } else {
        $(document).data('userInfo', data);
    }
});

然后您可以通过执行以下操作来访问它:

var userInfo = $(document).data('userInfo');

答案 5 :(得分:0)

window.username = data

将使其成为全局变量。虽然这通常被认为是不好的做法。

答案 6 :(得分:0)

尝试使用document.username代替username

从任何地方都可以看到

document对象

答案 7 :(得分:0)

我假设您的jQuery包含在$(document).ready();中 - 尝试在此外面声明vars,这将使它们在整个页面中全局:

var username, data;

$(document).ready(function() {
    $.post("assets/scripts/chat/get_user_info.php", {UserID: UserID}, function(data){
    if (data == "error") {
        alertBar('negative','There was an error sending the message');
    }
    username = data;
    })
});