2017-10-05 54 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') { 
    ... 
}