jQuery 不能在主范围内使用变量

标签 jquery

我有user_permissions变量,我定义了该变量供全局使用,在 post 方法上设置此变量后,打印该变量没有问题,但是在下面的许多行中使用此变量后,我得到 null结果???

jQuery(最少代码):

var user_permissions = null;
    $(document).ready(function(e) {
                $.post('model/controller.php' ,{ username:iId_username , postaction:'getUserPermission' }, 
                        function(data){
                            user_permissions=0;
                            user_permissions = data.user_permissions;
                            console.log(user_permissions); // RESULT is : {"user_permissions":"8"}
                },'json');
                $.each(listPermissions, function(i, item) {
                        if ( user_permissions == listPermissions[i].id ) selected = "selected='selected'"; else selected = '';
                        console.log(user_permissions); // RESULT is : null
                        selectElement += "<option value='" + listPermissions[i].id + "' "+ selected + ">" + listPermissions[i].permission_title + "</option>";
                });

});

我的代码有什么问题吗?

最佳答案

这是因为 .post() 是异步的,您的 .each() 在您的帖子完成之前就已执行,

您需要在post回调中移动.each()

$.post('model/controller.php', {
    username: iId_username,
    postaction: 'getUserPermission'
},

function (data) {
    user_permissions = 0;
    user_permissions = data.user_permissions;
    console.log(user_permissions); // RESULT is : {"user_permissions":"8"}
    $.each(listPermissions, function (i, item) {
        if (user_permissions == listPermissions[i].id) selected = "selected='selected'";
        else selected = '';
        console.log(user_permissions); // RESULT is : null
        selectElement += "<option value='" + listPermissions[i].id + "' " + selected + ">" + listPermissions[i].permission_title + "</option>";
    });
}, 'json');

关于jQuery 不能在主范围内使用变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16776007/

相关文章:

javascript - 基金会遵守 : Custom defined patterns/validations not firing on blur

javascript - 在html中更改标签宽度

jquery - 需要使用 jQuery.find 来查找特定样式的元素

javascript - JSP 使用@include 提供服务时出现 jQuery 验证插件问题

php - 将点击跳过图库更改为滑动照片库?

jquery - 铁路星级评定系统

php - 每 3 项和 4 项交替

javascript - 清除可点击div的内容

c# - 使用 jquery 渲染局部 View

jquery - 如何使用jQuery检测点击了哪个按钮