easyui中的tabs中的content为什么接收不到方法中传递过来的值?js调试的时候后台是返回值的了

时间:2021-11-12 05:02:10
 function loadRooms() {
            $.getJSON('/Room/GetRooms', {}, function (data) {
                for (var i = 0; i < data.length; i++) {
                    $('#tt').tabs('add', {                    //添加页签
                        title: data[i].RoomName,
                        content: LoadDesk(data[i].Id)
                    });
                }
            });
        }

        function LoadDesk(Id) {
            $.getJSON('/Desk/GetDesks', { id: Id }, function (data) {
                var strHtml = '<ul style="list-style-type:none"><li class="e">';
                for (var i = 0; i < data.length; i++) {
                    if (data[i].State == 0) {        
                        strHtml += '<img id=' + data[i].DeskName + ' src="/Images/FreeDesk.png"/>';
                    } else {                          
                        strHtml += '<img src="/Images/BusyDesk.png"/>';
                    }
                }
                strHtml += '</li></ul>';
       
                return strHtml;
            });
        }

2 个解决方案

#1


你不会设计异步的流程,你用了同步的思路来写的程序。

异步的流程,在 $.getJSON 回调中去给目标数据 设置目标值,而函数 LoadDesk 根本没有任何返回结果。

#2


我给你打一个比方,比如说你去到某个公司去应聘、参加面试,然后人家如果用你的话就会另行通知你上班事宜。这就是异步流程。

现在如果你背着一个铺盖卷堵住人家公司大门、非要讨个说法,就是硬要人家给你一个同步结果。这不会有好结果。

#1


你不会设计异步的流程,你用了同步的思路来写的程序。

异步的流程,在 $.getJSON 回调中去给目标数据 设置目标值,而函数 LoadDesk 根本没有任何返回结果。

#2


我给你打一个比方,比如说你去到某个公司去应聘、参加面试,然后人家如果用你的话就会另行通知你上班事宜。这就是异步流程。

现在如果你背着一个铺盖卷堵住人家公司大门、非要讨个说法,就是硬要人家给你一个同步结果。这不会有好结果。