2017-10-05 95 views
0

我有这个代码显示一个不同的按钮,一旦其他按钮被点击。保存jQuery与ajax点击?

<a href="#" id="ac-button-top" class="btn btn-success add-to-cart">order</a> 
<a href="#" id="ac-button-bottom" class="btn btn-success">test</a> 
$('.add-to-cart').click(function() { 
    $('#ac-button-top').css("display", "none"); 
    $('#ac-button-bottom').css("display", "block"); 
}); 

这工作得很好,不过,我需要这样即使某种方式保存该点击事件刷新页面时,它仍显示第二个按钮,而不是第一个。我的猜测是你会使用ajax来做这件事,但我是ajax的新手,并且在我搜索时找不到任何解决方案,所以如果有人能指出我如何做到这一点的正确方向? 或者其他不使用ajax的方式?

+1

如果你不需要将它传送给你不需要阿贾克斯的服务器,使用'localStorage'。 – Walk

+0

如果要在服务器端数据存储中保存状态,则AJAX可以工作。 Cookies,localStorage或sessionStorage如果您希望在不涉及服务器的情况下保持简单,就可以工作。 –

+1

使用'localStorage' –

回答

2

您可以使用localStorage。 这是小提琴https://jsfiddle.net/y0ymqps7/2/

HTML

<a href="#" id="ac-button-top" class="btn btn-success add-to-cart">order</a> 
<a href="#" id="ac-button-bottom" class="btn btn-success">test</a> 

的Javascript

$('.add-to-cart').click(function() { 
    $('#ac-button-top').css("display", "none"); 
    $('#ac-button-bottom').css("display", "block"); 
    localStorage.setItem("clicked", 1); 
}); 
$(document).ready(function() { 
    if(localStorage.getItem("clicked") == 1){ 
     $('#ac-button-top').css("display", "none"); 
     $('#ac-button-bottom').css("display", "block"); 
    } 
}); 
1

如果您需要保存点击事件计数或数据。如果你需要从数据库中保存这些细节。那么只有你可以用ajax方法去。否则,你可以用其他方法,比如去..

use sessionStorage or localStorage 
2

二者必选其一localStoragesessionStorage。它们之间的区别是localStorage没有设置过期日期,而sessionStorage在页面会话结束时被清除,即浏览器窗口或标签关闭。页面会话保持页面重新加载和恢复。

你能想到的东西,如:

$('.add-to-cart').click(function() { 
    $('#ac-button-top').css("display", "none"); 
    $('#ac-button-bottom').css("display", "block"); 
    window.sessionStorage.setItem('addToCartClicked', true); 
}); 

// some operation later... 
if (window.sessionStorage.getItem('addToCartClicked') == 'true') { 
    ... 
}