Using localStorage , as suggested above, the implementation will look something like this:
HTML:
<span class="vote"> <span data-action="like" class="glyphicon glyphicon-thumbs-up"></span> <span data-action="dislike" class="glyphicon glyphicon-thumbs-down"></span> </span>
Js:
$(document).ready(function() { /* ΡΠ΅ΠΊΡΡΠ΅Π΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅: -1 Π΄ΠΈΡΠ»Π°ΠΉΠΊ 0 ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ (Π±Π΅Π· Π³ΠΎΠ»ΠΎΡΠ°) 1 Π»Π°ΠΉΠΊ */ var state = localStorage.getItem('liked'); // ΡΠ»Π΅ΠΌΠ΅Π½Ρ, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΈ var elClass = '.vote'; // Π»Π°ΠΉΠΊ: ΠΌΠ΅Π½ΡΠ΅ΠΌ ΡΡΠΈΠ»ΠΈ ΠΈ ΠΏΠΎΠΌΠ΅ΡΠ°Π΅ΠΌ liked:1 Π² Ρ
ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ var like = function like() { localStorage.setItem('liked', 1); var $el = $(elClass); $el.find('[data-action="like"]').addClass('green'); $el.find('[data-action="dislike"]').removeClass('red'); }; // Π΄ΠΈΡΠ»Π°ΠΉΠΊ: ΠΌΠ΅Π½ΡΠ΅ΠΌ ΡΡΠΈΠ»ΠΈ ΠΈ ΠΏΠΎΠΌΠ΅ΡΠ°Π΅ΠΌ liked:-1 Π² Ρ
ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ var dislike = function dislike() { localStorage.setItem('liked', -1); var $el = $(elClass); $el.find('[data-action="like"]').removeClass('green'); $el.find('[data-action="dislike"]').addClass('red'); }; // ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΠΌ Π»Π°ΠΉΠΊ ΠΈΠ»ΠΈ Π΄ΠΈΡΠ»Π°ΠΉΠΊ ΠΏΡΠΈ Π·Π°Π³ΡΡΠ·ΠΊΠ΅ ΡΡΡΠ°Π½ΠΈΡΡ if (state == 1) { like(); } else if (state == -1) { dislike(); } // ΡΠΎΠ±ΡΡΠΈΠ΅ Π½Π° Π½Π°ΠΆΠ°ΡΠΈΠ΅ Π»Π°ΠΉΠΊΠ° ΠΈΠ»ΠΈ Π΄ΠΈΡΠ»Π°ΠΉΠΊΠ° $(elClass + ' span').click(function () { var action = $(this).data('action'); action === 'like' ? like() : dislike(); }); });
Using this approach, you can easily organize "Like / Dislike" for several entities at once.