Обновить тег привязки на каждом клике с помощью Javascript - PullRequest
0 голосов
/ 30 декабря 2011

У меня есть сайт электронной коммерции, на котором каждый раз, когда кто-то нажимает «Добавить в поддон» (мы называем его паллетой, а не корзиной), страница обновляется на той же странице и позиционирует себя в div этого продукта (попробуйтездесь: http://www.boostliquidation.com/). Это происходит с использованием этого Javascript:

 $('input.returnLink').each(function(){
     $(this).attr('value',window.location.href + $(this).attr('data-skuhash'));
     }); 

И этот тег привязки, который помещается в скрытый тег ввода перед кнопкой «Добавить в корзину»:

<input type="hidden" value="back" name="return_to" class='returnLink' data-skuhash='#{%     for variant in product.variants %}{{variant.sku}}{% endfor %}' /> 

(Код на {%%} является языком, который называется Liquid и используется на сайтах Shopify).

Это работает нормально ... но только для первого продукта. Он добавляет номер SKU, которому предшествует# в адресной строке. Если пользователь добавляет другой продукт, он обновляется в верхней части страницы, потому что он добавляет номер артикула к существующему номеру артикула, уже отображаемому в адресной строке.

Как я могуполучить продукты, добавленные после первого, чтобы заменить существующий SKU своим собственным, чтобы они обновлялись до продукта, а не до верхней части страницы?

1 Ответ

0 голосов
/ 30 декабря 2011

Я бы, вероятно, попытался использовать string.replace()

var str = window.location.href;
var hash = $(this).attr('data-skuhash');

if (str.match('#\w\w+'){
   str.replace('#\w\w+', hash);
} else {
    str = str + hash;
}

Поиск любых хэшей в конце URL-адреса, замена, если он находит, и добавление одного, если этого не происходит.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...