我正在开发一个使用菜单(fg.menu)和jQuery UI标签的网络应用。这些工作很棒。我现在正在尝试将dataTables插件应用到我正在我的选项卡中加载的表(通过Ajax)。这些表是在服务器端生成的(JSON现在不是一个选项),并且位于我加载到选项卡中的静态文件中。这些表具有指向其他表的下钻链接。这些通过我的选项卡选项中的事件处理加载到当前选项卡中:
load: function(event, ui)
{
//alert ("load is called");
$('a', ui.panel).live('click', function()
{
// now load the href into the tab
$(ui.panel).load(this.href);
// alert ("live click is called");
// Set up the dataTable
oTable = $('.my_table').dataTable(
{
"sScrollX": "100%",
"bPaginate": false,
"bJQueryUI": true,
"bInfo": false,
"bDestroy": true,
"bRetrieve": true,
"sDom": '<"H"r>t'
} );
return false;
});
} // end of load:
我还通过菜单链接加载器(具有不同的事件)初始化dataTables,这可以正常工作,就像任何初始选项卡选择渲染一样。
当我单击表格中的链接时,子表格将显示在选项卡中,但dataTable不会生效。我注意到当我点击一个新选项卡时,表格会在加载新选项卡之前暂时闪烁dataTable渲染。所以,我添加了警报(在上面的代码中注释掉)以查看事件是如何触发的,并且看到,dataTables开始正确渲染。当我删除警报时,它会返回到普通表。
我已经尝试过将dataTable init移动到我想到的任何地方,在各个地方显式调用fnDraw(),并在任何地方复制dataTable init,但似乎没有任何东西使它呈现除警报之外。
我在Firefox 3.6.12中使用了dataTables 1.7.3,jQuery 1.4.2和jQuery UI 1.8.5。
我猜这是某种事件问题,但我不知道任何警告会导致dataTable渲染发生的事情。有任何想法吗?我错过了一些愚蠢明显的东西吗? : - )
答案 0 :(得分:0)
好的,我似乎找到了解决方法。我最初尝试在包含表片段的每个html文件中执行dataTable init。它在我第一次尝试时没有用,但是当我再次尝试它时,它工作了(不知道为什么,但我还是会接受它。那个事件/渲染问题仍然让我烦恼,但至少现在我不知道不得不担心这个应用程序。接下来:让后退按钮跟踪不仅仅是标签,而是选项卡内的内容链接: - )