Ajaxify链接,以便它仍然可以在点击时访问地址,但不会更改页面

时间:2017-06-08 14:42:37

标签: javascript jquery html shopify liquid

我有一个从购物车中删除商品的链接,但是当您点击该链接时,它会将您重定向到购物车,现在该商品已被删除。是否有可能使它仍然可以点击它仍然可以做它的东西,但它没有'更改页面(即它不会将用户发送到购物车)?

注意:我正在使用Liquid on Shopify

链接:



<a href="/cart/change?line={{ forloop.index }}&amp;quantity=0" class="cart__remove">
                <small>{{ 'cart.general.remove' | t }}</small>
</a>
&#13;
&#13;
&#13;

3 个答案:

答案 0 :(得分:1)

由于您已经包含jQuery,请尝试添加以下脚本

jQuery(function($){
  $(document).on('click', 'a.cart__remove', function(e){
     e.preventDefault();
     var url = this.href;
     $.get(url, function(html){
       // here you know that the page the link was pointing to has executed
       // you might need to reload your card or parse it from the html you get here
       // because the index of the cart items has changed after removing one of them
       // and because you also need to update your shown cart to hide/remove the item that was selected

     });
  });
});

答案 1 :(得分:0)

您可以使用购物车js代替您的工作。以下是shopify cart js - cart js Reference

的详细信息

最好的方法是通过CartJS.removeItem函数发送订单项号。您还可以使用removeItemById删除购物车项目的ID。

它提供了cart.requestComplete事件监听器,您可以在移除项目请求完成后编写代码以重新加载页面。

答案 2 :(得分:-1)

是的,您可以

AJAX代表异步JavaScript和XML。

顾名思义,它用于处理异步数据传输。

为此,

将HTML更改为

<a onclick="removeCart('id');" class=" cart__remove "> <!--id indicates id of item as mentioned in your url //-->
    <small>{{ 'cart.general.remove' | t }}</small>
</a>

然后添加JavaScript代码

function removeCart(){
  var url = "cart/change?&quantity=0&line="+id;
  xhr = new XMLHttpRequest();
  //create an XHR object constructor
  xhr.open("GET",url,true);
  xhr.onreadystatechange=function(){
    if(xhr.status==200 && xhr.readyState==4){
      //Will execute if the request is success
      //Show some message to user saying that the item is removed
      //for example
      alert("Item removed");
    }
  }
  xhr.send();
}

如果需要,您也可以使用HTTP POST。