0

我想从json创建一个HTML表。我能够基于我找到的示例codepen生成我需要的确切格式。引发的JavaScript似乎创建了一个被调用的对象,该对象修改了包含div的CSS。用作静态数据的HTML(由JSON生成)可以100%工作。HTML表格与冻结(可滚动)垂直和水平行/列

工作的例子 - http://www.cocopine.co.za/code/index.html

我的问题是,当我产生从Javascript读取JSON和构建表中的HTML,JavaScript的似乎太快火,什么也不做表div的滚动。 我对JavaScript很新颖,JS文件中的代码需要修改,目前略高于我的水平。

错误的JavaScript生成的页面 - http://www.cocopine.co.za/code/grid1.html

总结:滚动(垂直和水平)时grid1.html应该的行为方式的index.html同

未在生成的HTML工作中的JavaScript如下:

(function() { 
    var demo, fixedTable; 
    fixedTable = function(el) { 
    var $body, $header, $sidebar; 
    $body = $(el).find('.fixedTable-body'); 
    $sidebar = $(el).find('.fixedTable-sidebar table'); 
    $header = $(el).find('.fixedTable-header table'); 
    return $($body).scroll(function() { 
     $($sidebar).css('margin-top', -$($body).scrollTop()); 
     return $($header).css('margin-left', -$($body).scrollLeft()); 
    }); 
    }; 

    demo = new fixedTable($('#demo')); 

}).call(this); 

回答

0

我已成功通过运行JSON文件处理jQuery的回调函数中的代码得到这个工作。

我不太熟悉jquery的异步事件,但显然json调用正在发生,然后继续处理下一个代码,处理JSON和HTML在后台发生,并且只在js后才完成代码已经完成。

总之。所有表格和div加在一起之后,js代码被添加进来。

... 
sideTable.appendChild(tbody); 
       aside.appendChild(sideTable); 
       div.appendChild(aside); 
       divBody.appendChild(tableBody) 
       div.appendChild(divBody); 
       element.appendChild(div);     

       var demo, fixedTable; 
        fixedTable = function(el) { 
        var $body, $header, $sidebar; 
        $body = $(el).find('.fixedTable-body'); 
        $sidebar = $(el).find('.fixedTable-sidebar table'); 
        $header = $(el).find('.fixedTable-header table'); 
        return $($body).scroll(function() { 
         $($sidebar).css('margin-top', -$($body).scrollTop()); 
         return $($header).css('margin-left', -$($body).scrollLeft()); 
        }); 
        }; 

        demo = new fixedTable($('#demo')); 

       } 

      }); 

}  

...