【问题标题】:Div strangely shown at the top with TablesorterDiv 奇怪地显示在 Tablesorter 的顶部
【发布时间】:2011-05-09 06:47:32
【问题描述】:

我正在使用http://tablesorter.com/docs/ 尝试对表格进行排序。它适用于不太令人不安的化妆品问题。在您真正尝试订购桌子之前,“斑马”不会激活。一点也不烦人,但我不知道为什么会这样。

我真正的问题是我也在尝试使用寻呼机插件。寻呼机 div 出现在页面顶部。这可能是由于我在第一次出现时将表格放在先前隐藏的选项卡中而引起的(这两个问题)。内容是通过 AJAX 从 PHP 文件加载的,加载时,根据数据,我可以激活选项卡和表格排序器(或不激活)。 如果我这样做,我会使用这行代码:

(".tab_content").hide();
                            $("ul.tabs li:first").addClass("active").show();
                            $(".tab_content:first").show();

                            $("#calls").tablesorter({widthFixed: true, widgets: ['zebra']}).tablesorterPager({container: $("#pager")}); 

“pager”div 位于选项卡内,就在目标表的下方。

正如@mu 所说的那样,寻呼机需要知道桌子在哪里。

标签加载了

<ul class="tabs">
    <li><a href="#cont-standard-report">Standard</a></li>
    <li><a href="#cont-extensions-report">Extensions</a></li>
    <li><a id="calls" href="#cont-calling-report">Callings</a></li>
</ul>

所以,我尝试了建议的函数,但在单击选项卡时它甚至没有调用它。

$("#cont-calling-report").one('click', function() {
    alert ("Test");
    $("#calls").tablesorter({widthFixed: true, widgets: ['zebra']})
               .tablesorterPager({container: $("#pager")});
});

这就是发生的事情。无需点击。

设法解决这个问题

设法用这个来解决它:

if (activeTab == '#cont-callings-report' && !tablesorter){
                                    $("#calls").tablesorter({widthFixed: true, widgets: ['zebra']}).tablesorterPager({container: $("#pager")});
                                    tablesorter = 1;
                                }

标签功能内部。

【问题讨论】:

    标签: jquery jquery-plugins tablesorter


    【解决方案1】:

    寻呼机插件可能需要知道表格在哪里以及表格有多大才能正确定位自己。当您的选项卡被隐藏时,其中的表格没有有用的位置,因此寻呼机可能以它需要的位置为零,结果是页面顶部的寻呼机。最简单的解决方案是在单击选项卡时绑定tablesorter

    $(selector_for_the_tab_with_the_table).one('click', function() {
        $("#calls")
            .tablesorter({widthFixed: true, widgets: ['zebra']})
            .tablesorterPager({container: $("#pager")});
    });
    

    你只需要绑定一次,所以使用.one:

    此方法与.bind() 相同,只是处理程序在第一次调用后未绑定。

    【讨论】:

    • 您好,您的建议似乎是在正确的方向,这是我没有想到的,但是,它似乎没有调用该函数...
    • @Antonio:您是否使用正确的东西来代替“selector_for_the_tab_with_the_table”?我不知道您的 HTML 是什么样的,所以我使用了占位符。
    • @Antonio: 只是确保:) 尝试将.one() 绑定到&lt;li&gt; 而不是&lt;a&gt;。选项卡可能是绑定到列表元素的处理程序,这些处理程序会阻止点击进入&lt;a&gt;
    • 好吧,我是个混蛋。我绑定到一个不存在的 ID 字段。一旦我将 id 添加到 li 或添加到 add 它会调用该函数但会发生两件事:1.- 它不显示任何内容 2.- 选项卡本身无法正确显示。
    • @Antonio:我也在看href,甚至没有注意到缺少id。您使用的是哪个标签插件?你有机会在 jsfiddle.net 上设置一个演示吗?
    猜你喜欢
    • 2012-09-13
    • 2016-05-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-05
    • 1970-01-01
    • 2023-03-31
    • 2012-07-30
    相关资源
    最近更新 更多