jquery ajax 选项卡和表格工具

Posted

技术标签:

【中文标题】jquery ajax 选项卡和表格工具【英文标题】:jquery ajax tabs and tabletools 【发布时间】:2015-04-13 18:07:30 【问题描述】:

我将 jquery 1.7.2 和 TableTools 2.2.1 与 DataTables 1.9.4 一起使用

我有一个 jquery 选项卡和 tabletools 一起使用的问题。我的一些选项卡是通过 ajax 调用加载的,而一些选项卡内容位于已初始化选项卡的页面本身上。

但是当我点击表格工具按钮时,我无法保存为 CSV/PDF。

它在第一个选项卡上工作正常,它是 ajax 加载的,但不适用于页面其他选项卡上的选项卡内容。

我使用以下代码调整按钮大小但没有结果,它仅在我没有加载 ajax 选项卡时才有效。

$("#tabs").tabs( 
    show: function(ui, event)  
        var ttInstances = TableTools.fnGetMasters(); 
        for (i in ttInstances)  
            alert(i); 
            if (ttInstances[i].fnResizeRequired())
                ttInstances[i].fnResizeButtons(); 
        
     
);

另外,我观察到alert(i) 确实在页面加载时出现,但当我在单击该特定选项卡时显式调用它时没有出现(并且我在此选项卡上有数据表),下面的代码 sn-p :

$("#tabs").tabs( 
    select: function(event,ui)  
        alert("tab no :"+ui.panel.id); 
        switch (ui.panel.id)  
            case "tab_started": 
                alert("hi here"); 
                var ttInstances = TableTools.fnGetMasters(); 
                for (i in ttInstances)  
                    alert(i); 
                    if (ttInstances[i].fnResizeRequired())
                        ttInstances[i].fnResizeButtons(); 
                
         
);

非常感谢任何帮助。请提出解决此问题的任何建议。 我确实检查了以前的帖子,但找不到确切的解决方案

【问题讨论】:

【参考方案1】:

任何使用 javascript 进行初始化的东西。您需要在调用 AJAX 的同一页面上调用初始化。您想要这样做的原因是您加载 DOM,然后将任何 Javascript 应用到它们。

主页

<div class='container'></div>

js

$.post(link, function (html) 
    $('.container').html(html)
)

AJAX 页面

<table class='datatable'>data</table>

js

/*Init datatable on ajax page.*/
$('.datatable').Datatable();

【讨论】:

以上是关于jquery ajax 选项卡和表格工具的主要内容,如果未能解决你的问题,请参考以下文章

重新加载页面后保持活动的 jQuery UI 选项卡和与其相关的子选项卡

重置 jquery 选项卡

如何在 chrome 开发工具中同时查看元素选项卡和源选项卡

数据表无法通过 JQuery-UI 选项卡正确工作

单击选项卡和背景更改(不是选项卡的背景)

jQuery 地址子选项卡(嵌套选项卡)(深度链接)