使用Javascript在每次单击时刷新锚定标记
我有一个电子商务网站,每当有人点击添加到托盘,我们称之为托盘而不是购物车,页面将刷新到同一页面,并将其自身定位到该产品的div,请在此处试用:。这是使用以下Javascript实现的:使用Javascript在每次单击时刷新锚定标记,javascript,jquery,anchor,liquid,shopify,Javascript,Jquery,Anchor,Liquid,Shopify,我有一个电子商务网站,每当有人点击添加到托盘,我们称之为托盘而不是购物车,页面将刷新到同一页面,并将其自身定位到该产品的div,请在此处试用:。这是使用以下Javascript实现的: $('input.returnLink').each(function(){ $(this).attr('value',window.location.href + $(this).attr('data-skuhash')); }); 以及该锚定标记,该锚定标记位于“添加到购物车”按钮之
$('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网站
这个很好用。。。但仅限于第一个产品。它在地址栏中添加以a开头的SKU编号。如果用户添加了其他产品,它将刷新到页面顶部,因为它会将SKU编号修改为地址栏中已显示的现有SKU编号
如何在第一次添加产品后添加产品,以使用自己的SKU替换现有SKU,使其刷新回产品而不是页面顶部 我可能会尝试使用string.replace
查找url末尾的任何哈希值,如果找到则替换,如果找不到则添加一个。不要使用$this.attrvalue,而应该尝试使用$this.vala valueI。我正在使用jGrowl在右上角弹出一条消息,让他们知道有东西添加到购物车中。这已经不起作用了。代码如下:ifwindow.location.hash.length>0{var prodName=window.location.hash.replace,;$'.productmsg.html'Item已添加到您的工作台。;$.jGrowl'Item已添加到您的工作台。;}这很奇怪,我查看了该网站,不明白为什么它会破坏jGrowl通知。我知道这是一个完全不同的建议,但是您是否尝试过使用AJAX调用以使页面不刷新?这样,用户将始终看到他们刚刚看到的内容。您可以在AJAX方法成功后调用jGrowl通知
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;
}