Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/73.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 具有冻结(可滚动)垂直和水平行/列的HTML表_Javascript_Html_Html Table_Horizontal Scrolling_Vertical Scrolling - Fatal编程技术网

Javascript 具有冻结(可滚动)垂直和水平行/列的HTML表

Javascript 具有冻结(可滚动)垂直和水平行/列的HTML表,javascript,html,html-table,horizontal-scrolling,vertical-scrolling,Javascript,Html,Html Table,Horizontal Scrolling,Vertical Scrolling,我正在尝试从json创建一个HTML表。我能够根据找到的示例代码笔生成所需的确切格式。激发并似乎创建了一个被调用的对象的javascript,该对象修改了包含div的css。当用作静态数据时,HTML(由JSON生成)可以100%工作 工作示例- 我的问题是,当我从读取JSON并构建表的Javascript生成HTML时,Javascript似乎启动得太快,对表div的滚动没有任何影响。 我对Javascript非常陌生,JS文件中的代码需要修改,目前有点超出我的水平 生成页面时出错- 总之:

我正在尝试从json创建一个HTML表。我能够根据找到的示例代码笔生成所需的确切格式。激发并似乎创建了一个被调用的对象的javascript,该对象修改了包含div的css。当用作静态数据时,HTML(由JSON生成)可以100%工作

工作示例-

我的问题是,当我从读取JSON并构建表的Javascript生成HTML时,Javascript似乎启动得太快,对表div的滚动没有任何影响。 我对Javascript非常陌生,JS文件中的代码需要修改,目前有点超出我的水平

生成页面时出错-

总之: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);

通过在json文件进程的jquery回调函数中运行代码,我成功地实现了这一点

我对jquery的异步事件不太熟悉,但很明显,json调用正在进行,然后进入下一段代码,json和HTML的处理在后台进行,只有在js代码完成后才能完成

简而言之。js代码是在所有表和div相加之后添加的

...
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'));

                }

             });

}    

...