Код: Выделить всё
history.replaceStatelet state = history.state || {}, url = "/"+location.pathname.split("/")[1]+"/",
order = myTable.order();
if (order.length && order[0][1]) {
state["sort"] = [{
name: myTable.columns(order[0][0]).init()[0].name,
dir: order[0][1],
}];
url += "sort:" + (state["sort"]["dir"] == "desc" ? "-" : "") + state["sort"]["name"] + "/";
}
else state["sort"] = [];
if (url == location.pathname) history.replaceState(state, ""); // Prevent duplication of history item
else history.pushState(state, "", url);
}
< /code>
Сохранение и восстановление упорядочения: < /p>
$(document).ready(function() {
myTable.on("draw", function() {
setTableState();
});
$(window).on("popstate", function(e) {
if (history.state && "sort" in history.state && history.state["sort"].length) {
myTable.order(history.state["sort"]).draw();
}
else myTable.order(defaultSort).draw();
});
});
< /code>
Поскольку он работает правильно, когда восстановленный порядок находится в направлении убывания (то есть он изменится на неупорядоченное состояние при переупорядочке в том же столбце), это похоже на ошибку с самими данными? /п>
Подробнее здесь: https://stackoverflow.com/questions/794 ... ding-twice
Мобильная версия