1

我有一个关于为数据表使用自定义排序选项的问题。我有一个表,最后一列只有图像。图像使用标题标签,我想在其中对它们进行排序。

所以,我使用这段代码来设置排序:

<script type="text/javascript">

            jQuery.extend( jQuery.fn.dataTableExt.oSort, {
                "title-string-pre": function ( a ) {
                    return a.match(/title="(.*?)"/)[1].toLowerCase();
                },

                "title-string-asc": function ( a, b ) {
                    return ((a < b) ? -1 : ((a > b) ? 1 : 0));
                },

                "title-string-desc": function ( a, b ) {
                    return ((a < b) ? 1 : ((a > b) ? -1 : 0));
                }
            } );

            $(document).ready(function() {
                        $('#customertable').dataTable( {
                             "aoColumnDefs": [ 
                             { "bSortable": false, "aTargets": [ 0,1 ] },
                             { "sType": "title-string-asc",   "aTargets": [ 4 ] }
                           ],

                            "bPaginate": false,
                            "bLengthChange": false,
                            "bFilter": false,
                            "bInfo": false,
                            "bAutoWidth": false,
                            "bSortCellsTop": true

                        } );
                    } );
</script>

但是,当我单击第 4 列的标题时,它不起作用并且 Chrome 报告错误“对象#的属性'title-string-asc-desc'不是函数”和“属性'title-string-asc-asc ' 对象 # 不是函数”

我究竟做错了什么?

4

1 回答 1

2

找到了答案,但不明白。

将 { "sType": "title-string-asc", "aTargets": [ 4 ] } 更改为 { "sType": "title-string", "aTargets": [ 4 ] }

现在它起作用了。但为什么?“title-string”在任何地方都没有定义。javascript 如何将该字符串链接到标题标签的内容?

于 2013-07-19T09:49:57.110 回答