在浏览器上按下后退按钮后保留div状态

时间:2015-06-15 07:46:58

标签: php jquery ajax laravel

场景 - 我正在开发一个基于laravel框架的网站,用户可以将产品添加到购物车,当他们将产品添加到购物车时,我将该产品的div的不透明度设置为“0.3”(稍微不那么明显),以用户获得的方式了解哪些产品已添加到购物车而无需进入购物车页面进行检查。此外,我使用ajax lazyload,当用户向下滚动窗口时,它会获得6个产品。此外,当用户点击产品时,我会将其重定向到产品页面,在那里他们可以看到产品的详细信息(如电子商务)

现在问题是当用户将某些产品添加到购物车然后打开产品以检查详细信息,然后单击浏览器后退按钮返回产品列表页面时,不再选择该页面上的选定项目(这意味着虽然该产品已添加到购物车,但不透明度设置为默认值。 请考虑我使用lazyload在窗口滚动上呈现越来越多的产品。

我尝试的东西 - 我有一个存储所有购物车产品的会话。我在我的产品列表页面添加了代码,如果将产品添加到购物车,则将不透明度设为0.3。但要获得此结果,用户必须在返回产品列表页面时单击“刷新”按钮。

1 个答案:

答案 0 :(得分:0)

解决方案:我创建了SetInterval Ajax函数来获取我在会话中使用的当前产品并使用它来改变产品div的不透明度。所以现在虽然我有一个懒惰,但我可以根据需要设置产品的不透明度。

 jQuery(document).ready(function()
 {
    var refreshId = setInterval( function() 
    {
        $.ajax({
           url: '/products/state',
           type: "POST",
           success: function(data)
           {    
               if(data == 0)
               {

               }
               else
               {
                   $.each(data, function(key, value) 
                   {
                       $('#product_box_'+value).attr('style','opacity: 0.3');
                   });
               }
           } 
       });
   }, 500);

});