#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:
Код на самом деле был написан правильно! Виновником был мой браузер. После открытия другого браузера и перехода на ту же страницу все работало, как ожидалось. Я благодарен всем за помощь!