0

这里有一个奇怪的,

我使用 CMS 变得简单,基本上我有一个购物车。默认情况下,它是隐藏的,直到有人单击“查看我的购物车”选项并且购物车使用 jQuery 切换滑入。

这实际上工作正常。

更新购物车时会出现问题。作为一种表单结构,您必须进行编辑(对数量或“检查”项目进行删除),然后单击“更新购物车”。页面刷新,因此购物车再次隐藏。

有没有办法做到这一点,以便在单击此链接时(特别是),页面刷新但默认情况下显示购物车?

这是我的代码,我想我可以在链接上附加一个“类”,但我不确定。

<script type="text/javascript" charset="utf-8">
  (function($) {
$('#show_basket').click(function() {
  $('#basket_box').toggle('slow');
  }); 

$('#lclose_basket').click(function() {
    $('#basket_box').hide('slow');
    }); 


$('#continue_shop').click(function() {
    $('#basket_box').hide('slow');
    }); 
$('#continue_shop2').click(function() {
    $('#basket_box').hide('slow');
    }); 
  }(jQuery));

注意:每个都有 2 个链接,因为我有一个移动版和桌面版的篮子。

还:

当我点击它时,如何制作它以便篮子关闭?有没有办法做到这一点?目前,我需要点击“继续购物”链接才能关闭购物篮。

4

1 回答 1

0

为了默认显示购物车,刷新后您可以执行以下操作:

$(document).ready(function(){  
    $('#basket_box').show('slow'); 
}

如果您不想在每次站点刷新时触发此操作,例如可以将 GET 参数添加到您的链接并检查此参数:

function getParameterByName(name) {
    name = name.replace(/[\[]/, "\\[").replace(/[\]]/, "\\]");
    var regex = new RegExp("[\\?&]" + name + "=([^&#]*)"),
        results = regex.exec(location.search);
    return results === null ? "" : decodeURIComponent(results[1].replace(/\+/g, " "));
}
var param = getParameterByName('parameter-name');
if(param){
    //do stuff
}

注意:通过名称检索参数的函数可以在这里找到

第二种可能性是,在链接上显示购物车 onlick 并通过 AJAX 刷新购物车内容。

$('#refresh_link').click(function() {
  $('#basket_box').show('slow');
  //do ajaxcall -> write callback-data to the cart
   $.ajax({
    url: "pathto/cart.php", /path to your script
    type: "POST",
    data: 'id='+id, // e.g. the ID of the cart or the customer
    success: function (data) {
         //data contains the data you get from "cart.php"
         //you can s.th. like:
         $('div').html(data); // this write the data into a specified div.
    }
    });
  }); 

有关 jQuery 和 Ajax 的更多信息,请尝试阅读手册 ( http://api.jquery.com/jquery.ajax/ ) 或查看此处:http ://www.php4every1.com/tutorials/jquery-ajax -教程/

在 jQuery 中,您可以使用大部分 CSS 选择器。因此,当您点击例如显示购物车的 div 时,您可以触发您在问题中显示的点击事件:

$('div.cart').click(function(){
    $('#basket_box').hide('slow');
});

我希望我做对了,这对你有帮助。

问候

于 2014-05-26T14:49:59.037 回答