Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/wix/2.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
Jquery 如何在tablesorter中忽略具有特定类名的th?_Jquery_Tablesorter - Fatal编程技术网

Jquery 如何在tablesorter中忽略具有特定类名的th?

Jquery 如何在tablesorter中忽略具有特定类名的th?,jquery,tablesorter,Jquery,Tablesorter,我使用tablesorter对表进行排序,但不是对所有列进行排序,我希望忽略具有已定义类名的特定列,例如: <table class="basicList" cellpadding="0" cellspacing="0"> <thead> <tr> <th class="ck_field"><i

我使用tablesorter对表进行排序,但不是对所有列进行排序,我希望忽略具有已定义类名的特定列,例如:

<table class="basicList" cellpadding="0" cellspacing="0"> 
                    <thead> 
                        <tr> 
                            <th class="ck_field"><input type="checkbox" id="check_all" name="check_all" /></th>
                            <th class="col_filter"><a href="#" class="btn_filter">&nbsp;</a></th>
                            <th>Name <span class="sort_indicator">&nbsp;</span></th> 
                        </tr> 
                        <tr class="filter_row"> 
                            <td>&nbsp;</td>
                            <td>&nbsp;</td>
                            <td> <input type="text" id="the_name" name="name" class="filter_field"/></td> 
                        </tr>  
                    </thead>
                </table>
哪个不行,怎么解决这个问题

像这样使用它:

var myHeaders = {};
myHeaders[ck_ignore] = { sorter: false };
myHeaders[filter_ignore] = { sorter: false };

$(".basicList").tablesorter({ widgets: ['zebra'], headers: myHeaders });
注意:如果您有更多包含这些类的列,它将仅适用于第一次出现

像这样使用它:

var myHeaders = {};
myHeaders[ck_ignore] = { sorter: false };
myHeaders[filter_ignore] = { sorter: false };

$(".basicList").tablesorter({ widgets: ['zebra'], headers: myHeaders });

注意:如果您有更多包含这些类的列,它将仅适用于第一次出现

只需使用headers参数:

$(document).ready(function() {

    console.log($(".basicList .col_filter").index());
    console.log($(".basicList .ck_field").index());

    var ck_ignore = $(".basicList .ck_field").index();
    var filter_ignore = $(".basicList .col_filter").index();

    $(".basicList").tablesorter({ widgets: ['zebra'],headers: {       
             // pass the headers argument and assing a object
        headers: {
            // assign the first column (we start counting zero)
            0: {
                // disable it by setting the property sorter to false 
                sorter: false 
            }
        }
        ,
            $filter_ignore : {                
                sorter: false
            }
        }  
    });

只需使用headers参数:

$(document).ready(function() {

    console.log($(".basicList .col_filter").index());
    console.log($(".basicList .ck_field").index());

    var ck_ignore = $(".basicList .ck_field").index();
    var filter_ignore = $(".basicList .col_filter").index();

    $(".basicList").tablesorter({ widgets: ['zebra'],headers: {       
             // pass the headers argument and assing a object
        headers: {
            // assign the first column (we start counting zero)
            0: {
                // disable it by setting the property sorter to false 
                sorter: false 
            }
        }
        ,
            $filter_ignore : {                
                sorter: false
            }
        }  
    });

遇到了同样的问题,下面是我的想法。假设不排序的
th
类被称为
nosort

function setupTablesorter() {
    $('table.tablesorter').each(function (i, e) {
        var myHeaders = {}
        $(this).find('th.nosort').each(function (i, e) {
            myHeaders[$(this).index()] = { sorter: false };
        });

        $(this).tablesorter({ widgets: ['zebra'], headers: myHeaders });
    });    
}

这比我在这里看到的其他答案有一些优势。首先,即使您有多个不可排序的列,它也可以工作。第二,如果在同一页上有多个表,每个表都有不同的可排序列,那么它仍然有效。

遇到了相同的问题,下面是我的想法。假设不排序的
th
类被称为
nosort

function setupTablesorter() {
    $('table.tablesorter').each(function (i, e) {
        var myHeaders = {}
        $(this).find('th.nosort').each(function (i, e) {
            myHeaders[$(this).index()] = { sorter: false };
        });

        $(this).tablesorter({ widgets: ['zebra'], headers: myHeaders });
    });    
}

这比我在这里看到的其他答案有一些优势。首先,即使您有多个不可排序的列,它也可以工作。其次,如果您在同一页面上有多个表,每个表都有不同的可排序列,则它仍然有效。

根据,您现在可以使用
class=“sorter false”
根据,您现在可以使用
class=“sorter false”

为什么变量名前面有
$
?@Khez:通常用于表示它们是jQuery对象,不过在这种情况下,它们看起来像是用作字典键……这很奇怪。@Mark,我知道$表示什么,但是他刚刚创建了这两个变量,它们没有
$
@Khez:ahh…但是不管怎样,当这样定义时,不能在对象键中使用变量。。。?如果要解释变量,必须执行object[key],否则需要一个fork of tablesorter来设置列解析器或禁用列,使用类名称,如
sorter false
sorter currency
-检查a。为什么变量名称前面有
$
?@Khez:通常用于指示它们是jQuery对象,尽管在这种情况下,它们看起来像是用作字典键……这很奇怪。@Mark,我知道$表示什么,但是他刚刚创建了这两个变量,它们没有
$
@Khez:ahh…但是不管怎样,当这样定义时,不能在对象键中使用变量。。。?如果您想要解释变量,您必须执行object[key],我有一个表叉排序器,允许您设置列解析器,或使用类名称(如
sorter false
sorter currency
)禁用列,请签出一个。