Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/78.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 在cookie中保存表排序器选项_Jquery_Cookies_Tablesorter - Fatal编程技术网

Jquery 在cookie中保存表排序器选项

Jquery 在cookie中保存表排序器选项,jquery,cookies,tablesorter,Jquery,Cookies,Tablesorter,我正在使用jQuery Tablesorter插件对我的表进行排序,并希望使用jQuery cookie插件将选择保存在cookie中 有人做过这样的事吗?或者你知道怎么做 我使用click()事件进行排序,因为我的表被拆分为多个部分,例如: function setupTablesorter() { var currentSort; var cookieSortList = $.evalJSON($.cookie("table_sort_list")); if (coo

我正在使用jQuery Tablesorter插件对我的表进行排序,并希望使用jQuery cookie插件将选择保存在cookie中

有人做过这样的事吗?或者你知道怎么做

我使用
click()
事件进行排序,因为我的表被拆分为多个部分,例如:

function setupTablesorter() {
    var currentSort;
    var cookieSortList = $.evalJSON($.cookie("table_sort_list"));
    if (cookieSortList == null)
        cookieSortList = [[1, 0]]

    $('table').each(function (i, e) {
        var myHeaders = {}
        $(this).find('th.nosort').each(function (i, e) {
            myHeaders[$(this).index()] = { sorter: false };
        });
        $(this).tablesorter({ sortList: cookieSortList, widgets: ['zebra'], headers: myHeaders }).bind("sortEnd", function (sorter) {
            currentSort = sorter.target.config.sortList;
        });
    });

    $(".uiGridHeader th").click(function () {
        $.cookie("table_sort_list", $.toJSON(currentSort));
    });

    console.log(currentSort);
}

function setupFixedHeader() {

    var copyThead = $(".uiGridContent thead").html();
    var copyCol = $(".uiGridContent colgroup").html();
    copyThead = '<table>' + copyCol + '<thead>' + copyThead + '</thead></table>';
    $(".uiGridHeader").html(copyThead);
    $(".uiGridContent table").tablesorter();
    $(".uiGridContent table thead").hide();
    function bindClick() {
        $(".uiGridHeader th").click(theadClick);
    }
    var direction = 0;
    function theadClick() {
        console.log('click');
        if (direction) {
            direction = 0;
        } else {
            direction = 1;
        }
        var index = $(this).index();
        var sorting = [[index, direction]];

        $(".uiGridContent table").trigger("sorton", [sorting]);

        var FindcopyThead = $(".uiGridContent thead").html();
        var FindcopyCol = $(".uiGridContent colgroup").html();
        var NewcopyThead = '<table>' + FindcopyCol + '<thead>' + FindcopyThead + '</thead></table>';
        $(".uiGridHeader").html(NewcopyThead);
        bindClick();
    }
    bindClick();
}
函数setupTablesorter(){
var-currentSort;
var cookieSortList=$.evalJSON($.cookie(“表排序列表”);
如果(cookieSortList==null)
cookieSortList=[[1,0]]
$('table')。每个(函数(即,e){
var myHeaders={}
$(this.find('th.nosort')。每个(函数(i,e){
myHeaders[$(this).index()]={sorter:false};
});
$(this).tablesorter({sortList:cookieSortList,widgets:['zebra',headers:myHeaders}).bind(“sortEnd”,函数(sorter){
currentSort=sorter.target.config.sortList;
});
});
$(“.uiGridHeader th”)。单击(函数(){
$.cookie(“表排序列表”,$.toJSON(当前排序));
});
console.log(currentSort);
}
函数setupFixedHeader(){
var copyThead=$(“.uiGridContent thead”).html();
var copyCol=$(“.uiGridContent colgroup”).html();
copyThead=''+copyCol+''+copyThead+'';
$(“.uiGridHeader”).html(copyThead);
$(“.uiGridContent表”).tablesorter();
$(“.uiGridContent表thead”).hide();
函数bindClick(){
$(“.uiGridHeader th”)。单击(ADClick);
}
var方向=0;
函数theadClick(){
console.log('click');
如果(指示){
方向=0;
}否则{
方向=1;
}
var index=$(this.index();
变量排序=[[索引,方向]];
$(.uiGridContent table”).trigger(“sorton”,[sorting]);
var FindcopyThead=$(“.uiGridContent thead”).html();
var FindcopyCol=$(“.uiGridContent colgroup”).html();
var NewcopyThead=''+FindcopyCol+''+FindcopyThead+'';
$(“.uiGridHeader”).html(NewcopyThead);
bindClick();
}
bindClick();
}

因此,在函数的某个地方,我需要将选择记录在cookie中。

在函数中,您可以添加
$.cookie(“table\u sort\u list”,排序)在您的
var排序之后

在初始化表的函数中,可以执行如下操作

var cookieSortList= $.cookie("table_sort_list");
if(cookieSortList== null)
    cookieSortList = []

$("table").tablesorter({ 
    sortList: cookieSortList
}); 

另一种可能更好的方法是获得新的排序顺序,如

中所述。如果您希望保存排序,以便在以后的访问中重新排序表,那么现在Tablesorter中内置了一个
saveSort
选项,它使用本地存储(以及cookies作为备用)。有关详细信息,请参阅。

给出此错误:
uncaughttypeerror:无法设置未定义的属性“count”
并检查cookie的值:
2%2C1
有什么想法吗?问题是什么?我甚至尝试过像这样包装cookie:
var cookieSortList=[[$.cookie(“table\u sort\u list”)]
但是仍然得到了错误。我也使用了你发布的问题中提到的绑定,但是数据似乎没有被正确使用,Yok发现了它。看起来$.cookie和数组的问题通过以下代码片段解决了:包含jquery json库,用于将其编码为json,并在从cookie检索时将其解析回来。