Как правильно написать это window.history.go(-historyCount)

#javascript #jquery

#javascript #jquery

Вопрос:

В фрагменте кода, который я пишу, мне нужно, чтобы пользователь возвращался к своей истории в зависимости от количества товаров в корзине.

Итак, я написал этот код:

 var productCount = $('.rdsubs-cart-name').length;
var historyCount = productCount   1;
console.log(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); , ничего не происходит.

Код на самом деле был написан правильно!Виновником был мой браузер. После открытия другого браузера и перехода на ту же страницу все работало, как ожидалось. Я благодарен всем за помощь!

Комментарии:

1. Возможно, я что-то упускаю, но я не сразу замечаю что-то «неправильное» в этом коде. Можете ли вы уточнить, что вы ожидаете, в отличие от того, что происходит на самом деле?

2. Что, если вы console.log(historyCount) в своем событии щелчка? Это то, чего вы ожидаете?

3. Я скопировал вставил ваш код в JSFiddle , и он отлично работает. Как вы можете заметить, в вашем вопросе просто недостаточно информации, чтобы мы могли дать вам определенный ответ. Ваша проблема, похоже, не связана с включенным вами кодом.

4. С моей стороны, нажатие кнопки фактически отправляет меня обратно на 5 страниц.

5. @Tylerproper Я нашел виновника. Это был мой браузер. Загрузил вашу скрипку и страницу, над которой я работал, в другом браузере, и теперь все работает, как ожидалось. Большое вам спасибо за помощь!

Ответ №1:

Я думаю, что одна ошибка, которая может произойти, заключается в том, что productCount изменился с момента определения события, но поскольку вы извлекаете значение вне события, вы не используете последнее значение и поэтому видите неожиданный результат.

Переместите извлечение productCount в функцию события и посмотрите, устраняет ли это любую проблему, с которой вы столкнулись.

 $("a.btn-continue").click(function() {
  var productCount = $('.rdsubs-cart-name').length;
  var historyCount = productCount   1;
  window.history.go(-historyCount);
});
  

Комментарии:

1. Спасибо за ваш ответ, я попробовал, и он работает точно так же, он отлично отображается в журнале консоли, но ничего не происходит.

Ответ №2:

Код на самом деле был написан правильно! Виновником был мой браузер. После открытия другого браузера и перехода на ту же страницу все работало, как ожидалось. Я благодарен всем за помощь!