В фрагменте кода, который я пишу, мне нужно, чтобы пользователь возвращался к своей истории в зависимости от количества товаров в корзине.
Поэтому я написал этот код:
var productCount = $('.rdsubs-cart-name').length;
var historyCount = productCount + 1;
console.info(historyCount);
$("a.btn-continue").click(function() {
window.history.go(-historyCount);
});
Но, как я и предполагал, эта часть написана неправильно.
window.history.go(-historyCount);
Я не знаю названия, поэтому мне очень сложно найти что-то об этом в Google. Так что я надеялся, что кто-то из вас может указать мне правильное направление!
Спасибо!
Дополнительная информация:
Когда в корзине 4 товара, а пользователь удаляет 1 товар, страница перезагружается. Таким образом, когда пользователь удаляет все 4 продукта, он также перезагружает страницу 4 раза. Поэтому, если пользователь нажимает «Продолжить покупки», ему нужно вернуться на 5 страниц истории. В противном случае возник бы бесконечный цикл перезагрузки корзины.
Когда я пишу window.history.go(-5);
, это работает, но когда я пишу window.history.go(-historyCount);
, ничего не происходит.
Код был действительно правильно написан! Виновником был мой браузер. После открытия другого браузера и перехода на ту же страницу все заработало как положено. Я благодарна всем за помощь!
@TylerRoper При нажатии ничего не происходит, и я не получаю сообщение об ошибке в консоли. Когда я меняю historyCount
на число, это работает. Я добавлю больше информации в вопрос.
Что, если вы console.info(historyCount)
в событии клика? Это то, что вы ожидаете?
@TylerRoper Да, это у меня уже есть. Но этого нет в приведенном выше коде, я также добавлю его туда. Но лог консоли показывает правильный номер только при нажатии на кнопку ничего не происходит.
@TylerRoper Спасибо за создание скрипки. Когда я нажимаю кнопку в скрипке, тоже ничего не происходит, она реагирует по-другому на вашем конце?
С моей стороны, нажатие кнопки действительно отправляет меня назад на 5 страниц.
@TylerRoper Я нашел виновника. Это был мой браузер. Загрузил вашу скрипку и страницу, над которой я работал, в другом браузере, и теперь все работает как положено. Большое спасибо, что выручили меня!
Рад, что у тебя получилось. Вам нужно предоставить и принять ответ или удалить свой пост, чтобы решить эту проблему.
Я думаю, что одна ошибка, которая может произойти, заключается в том, что productCount изменился с момента определения события, но поскольку вы извлекаете значение вне события, вы не используете последнее значение и, следовательно, видите неожиданный результат.
Переместите извлечение productCount в функцию события и посмотрите, решит ли это проблему, с которой вы столкнулись.
$("a.btn-continue").click(function() {
var productCount = $('.rdsubs-cart-name').length;
var historyCount = productCount + 1;
window.history.go(-historyCount);
});
Спасибо за ваш ответ, я попробовал, и он работает точно так же, он отлично отображается в журнале консоли, но ничего не происходит.
Код был действительно правильно написан! Виновником был мой браузер. После открытия другого браузера и перехода на ту же страницу все заработало как положено. Я благодарна всем за помощь!
Возможно, я что-то упускаю, но я сразу не замечаю ничего «неправильного» в этом коде. Можете ли вы уточнить, что вы ожидаете, в отличие от того, что на самом деле происходит является?