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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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