希望jQuery切换到页面刷新时默认为“显示”

时间:2014-05-26 14:21:18

标签: jquery forms toggle cmsmadesimple

这里有一个奇怪的,

我使用简单的CMS,基本上我有一个购物车。默认情况下,它会被隐藏,直到有人点击"查看我的购物车"选项和购物车使用jQuery切换滑动。

这实际上工作正常。

购物车更新时会出现问题。作为表单结构,您必须进行编辑(以qty或'检查'项目进行删除),然后点击"更新购物车"。页面刷新,因此购物车再次隐藏。

无论如何都要这样做,以便在点击此链接(特别是)时,页面会刷新,但购物车默认显示?

继承我的代码,我想我可以附上一个班级'也许这个链接,但我不确定。

<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));

N.B:我有2个链接,因为我有一个移动和桌面版本的篮子。

ALSO:

当我点击它时,如何让它关闭?有没有办法做到这一点?目前,我需要点击&#34;继续购物&#34;链接以关闭篮子。

1 个答案:

答案 0 :(得分: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
}

注意:可以找到通过名称检索参数的功能here

第二种可能性是,显示链接上的购物车点击并通过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-tutorial/

在jQuery中,你可以使用最多的CSS选择器。因此,当您点击时,您可以触发您在问题中显示的点击事件在div上显示了购物车:

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

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

问候