DataTables Заказы возрастают дваждыJquery

Программирование на jquery
Anonymous
DataTables Заказы возрастают дважды

Сообщение Anonymous »

Я использую history.pushstate /

Код: Выделить всё

history.replaceState
Чтобы сохранить состояние упорядочения таблицы (с Serverside Обработка и Ordermulti установить на false ) каждый раз, когда пользователь нажимает A . Впоследствии я использую .on ("popstate") для восстановления сохраненного упорядочения. Закажите во второй раз, когда пользователь снова заказывает в одном и том же столбце (то есть таблица перерисована, но упорядочение не меняется). Обратите внимание, что когда восстановленное упорядочение спускается, оно будет переупорядочиваемым, как и ожидалось при упорядочении в одном столбце. Lang-Js PrettyPrint-Override ">setTableState = function() {
let 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

Вернуться в «Jquery»