Сообщение от гуня
|
может файл закешировался
|
Да, так всё время и происходит!
Сообщение от гуня
|
сперва отмечаем чекбоксы,затем кликаем назад в браузере
шлются бесконечные запросы
например сюда google-analytics.com/collect
хром показывает тысячи запросов
|
не надо было в событии pjax:complete заново инициализировать pjax, т. е. у вас на каждый ответ регистрируется обработчик, который вызывается при следующем ответе.
В общем у вас там немного запутанно получилось... Я думаю, что состояние кнопок лучше восстанавливать из состояния, которое хранится в search params.
Короче удалите всё, что у вас сейчас есть в category.js, и замените на это...
$(function() {
new Pjax({
elements: "form",
selectors: ["#goods-list"],
scrollTo: false,
cacheBust: false
});
$(".price-range").each(function() {
var $minPrice = $(this).find("#min");
var $maxPrice = $(this).find("#max");
var min = $(this).data("price-min") || 0;
var max = $(this).data("price-max") || 1000000;
$(this).ionRangeSlider({
type: "double",
grid: true,
min: min,
max: max,
from: $minPrice.val(),
to: $maxPrice.val(),
postfix: " ₽",
onFinish: function (data) {
$minPrice.val(data.from).trigger("change");
$maxPrice.val(data.to).trigger("change");
}
});
});
$(document).click(function () {
$(".multiselect").parent().find("ul").prop("style", "");
});
$(document).on("change", "#goods-filter :input, #goods-filter [type=hidden]", function() {
$("#goods-filter :submit").click();
$(this).closest("div.col-xs-3").find(".multiselect").parent().find("ul").show();
});
document.addEventListener("pjax:complete", function () {
updateFields();
$("#tabster").tabs();
$(".bxslider").bxSlider({
pagerCustom: "#bx-pager",
infiniteLoop: false
});
$("a[rel=gallery]").fancybox([]);
$("#goods-filter").show();
});
updateFields();
$(".sidebar-menu").show();
function updateFields() {
var q = $.deparam(location.search.replace(/^\?/,""));
$("form select[name='brands[]']").val(q.brands);
$("form select[name='brands[]']").multiselect("refresh");
$("form input[name=latest]").val(q.latest || "0");
$("form input[name=sale]").val(q.sale || "0");
$("form input[name=popular]").val(q.popular || "0");
$("form input[name=available]").val(q.available || "0");
$("form .price-range").data("ionRangeSlider").update(q.price);
}
$(document).on("click", ".treeview li a", function() {
var li = $(this).closest("li");
$(".treeview a.selected").removeClass("selected");
$(this).addClass("selected");
if (li.hasClass("collapsable")) return;
li.find("div.hitarea:first").swapClass("expandable-hitarea", "collapsable-hitarea");
li.swapClass("lastExpandable", "lastCollapsable");
li.swapClass("expandable", "collapsable");
li.find("ul:first").toggle();
});
$(document).on("click", ".items a[ajaxLink]", function() {
var link = $('.treeview a[href="' + $(this).attr('href') + '"]');
if (!link.length) return false;
var li = link.closest("li");
$(".treeview a.selected").removeClass("selected");
link.addClass("selected");
if (li.hasClass("collapsable")) return;
li.swapClass("lastExpandable", "lastCollapsable");
li.swapClass("expandable", "collapsable");
li.find("div.hitarea:first").swapClass("expandable-hitarea", "collapsable-hitarea");
li.find("ul:first").toggle();
});
});