Jquery 在cookie中保存表排序器选项
我正在使用jQuery Tablesorter插件对我的表进行排序,并希望使用jQuery cookie插件将选择保存在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
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检索时将其解析回来。