删除'处理'而不是隐藏

时间:2011-12-15 08:16:00

标签: datatables

当我们开始排序或其他事情时,数据表有选项显示“进程”消息。一切都很好,只有当它隐藏'处理'时,仍然留有“处理”的空间。因此,当处理显示然后加载数据时,html表跳下来处理隐藏但是html表没有跳回来,因此它保持可见的位置。 问题,如何使数据表删除Processing标签而不是隐藏。谢谢

EDIT。我添加了HTML代码

<div id="search_table_processing" class="dataTables_processing" style="visibility: hidden;">Processing...<img alt="&lt; &lt;" src="/themes/third_party/linkedin_search/img/165.gif"></div>

5 个答案:

答案 0 :(得分:8)

嗯,我刚刚碰到这个,不得不自己深入研究。

在1.9.0版中,您可以搜索此代码段:

an[i].style.visibility = bShow ? "visible" : "hidden";

(搜索visibility后找到。)

在缩小版本中,它是当前的(使用NuGet包):

c[d].style.visibility=b?"visible":"hidden";

根据示例CSS文件,问题是我们忽略了样式.dataTables_processing。以下是其中一个样本的样式:

.dataTables_processing {
    position: absolute;
    top: 0px;
    left: 50%;
    width: 250px;
    margin-left: -125px;
    border: 1px solid #ddd;
    text-align: center;
    color: #999;
    font-size: 11px;
    padding: 2px 0;
}

一旦设置了样式(或bProcessing设置为false),就不会出现问题。

如果您愿意更改插件的功能(如果您认为可以记得将其更改回来),那么您可以将其切换为使用显示而不是可见性。

答案 1 :(得分:4)

如果您使用国际化 - 数据表构造函数中的“oLanguage”属性

在本地化文件中将旧的sProcessing值替换为此处,以便在处理时放置自定义图像:

"sProcessing":   "<img src='/themes/third_party/linkedin_search/img/165.gif'/>",

以下是将数据表链接到本地​​化文件的方法(可以从数据表网站Internationalisation of datatables下载) 。 。

        "oLanguage": {
           "sUrl": "../../jQuery/dataTables/media/MyLanguageFilesFolder/en_US.txt"
         }

。 。

如果您不使用数据表的国际化,您可以随时使用上面建议设置“sProcessing”值...

这里有一个例子:

$(document).ready(function() {
$('#example').dataTable( {
    "oLanguage": {
        "sProcessing": "<img src='/themes/third_party/linkedin_search/img/165.gif'>"
    }
} );

});

答案 2 :(得分:2)

更改

    an[i].style.visibility = bShow ? "visible" : "hidden";

    an[i].style.display = bShow ? "block" : "none";

对我不起作用。但是,我通过将声明更改为

来完成它
    if (bShow == false) {
          an[i].style.display = "none";
    }
    else {
       an[i].style.display = "block";
    }

希望这可以帮助任何不想添加任何css代码并且直接访问源代码的人!

答案 3 :(得分:1)

对于Datatables版本1.9.4,只需编辑文件jquery.dataTables.js第3005行,并更改以下内容:

an[i].style.visibility = bShow ? "visible" : "hidden";"block" : "none";  

an[i].style.display = bShow ? 

为我工作!

答案 4 :(得分:0)

如果您希望文字在背景应该在那里时消失,为什么不添加:

div.dataTables_processing {color:transparent; }