سلام، بنده قصد دارم بعد از کلیک شدن دکمه لایک یا Dislike، این دکمه ها رو به کار نشون ندم و بنویسم که نظر شما ثبت شد، به همین منظور اومدم بعد از Ajax یک Cookie ساختم و گفتم اگر کلیک شد نشونشون نده و یک پیام هم بده، کار می کنه ولی تنها مشکلم اینجاست که بعد از رفرش شدن دوباره، باز هم دکمه ها می آن و زمان در اون ها تاثیری نداره ... حالا مشکل از کجاست ؟
$(document).ready(function(e){
$(".like").click(function(e){
$.post("Initial.php",
{
'id':<?php echo $thing['id']; ?>,
'user':'like'}
);
document.cookie = "Like=siteUserLikes; expires=Thu, 18 Dec 2016 12:00:00 UTC";
var x = document.cookie;
if(x){
document.getElementById('like').style.display="none";
document.getElementById('disLike').style.display="none";
document.getElementById('message').innerHTML = "Your Comment is submitted !"
}else{
document.getElementById('like').style.display="block";
document.getElementById('disLike').style.display="block";
document.getElementById('message').innerHTML = ""
}
});
});
$(document).ready(function(e){
$(".like").click(function(e){
$.post("Initial.php",
{
'id':<?php echo $thing['id']; ?>,
'user':'like'}
);
document.cookie = "Like=siteUserLikes; expires=18 Dec 2016 12:00:00";
var x = document.cookie;
if(x){
$(".like").css('display','none');
$(".disLike").css('display','none');
$(".message").innerHTML("Your Comment is submitted !");
}else{
$(".like").css('display','block');
$(".disLike").css('display','block);
$(".message").remove();
}
});
});
منطقتون اشتباست
<!DOCTYPE html>
<html>
<head>
<script>
(function() {
// create jsCookies function
var jsCookies = {
// this gets a cookie and returns the cookies value, if no cookies it returns blank ""
get: function(c_name) {
if (document.cookie.length > 0) {
var c_start = document.cookie.indexOf(c_name + "=");
if (c_start != -1) {
c_start = c_start + c_name.length + 1;
var c_end = document.cookie.indexOf(";", c_start);
if (c_end == -1) {
c_end = document.cookie.length;
}
return unescape(document.cookie.substring(c_start, c_end));
}
}
return "";
},
// this sets a cookie with your given ("cookie name", "cookie value", "good for x days")
set: function(c_name, value, expiredays) {
var exdate = new Date();
exdate.setDate(exdate.getDate() + expiredays);
document.cookie = c_name + "=" + escape(value) + ((expiredays == null) ? "" : "; expires=" + exdate.toUTCString());
},
// this checks to see if a cookie exists, then returns true or false
check: function(c_name) {
c_name = jsCookies.get(c_name);
return c_name != null && c_name != ""
}
};
window.jsCookies = jsCookies;
})();
window.onload=function(){
//check Comment is submitted
if(jsCookies.check("Like")){
document.getElementById('like').style.display="none";
document.getElementById('dislike').style.display="none";
document.getElementById('message').innerHTML = "Your Comment is submitted !";
}
//onclick
document.getElementById('like').onclick=document.getElementById('dislike').onclick= function () {
// check Cookie
if(!jsCookies.check("Like")){
//set Cookie
jsCookies.set("Like", "1", 1 );
document.getElementById('like').style.display="none";
document.getElementById('dislike').style.display="none";
document.getElementById('message').innerHTML = "Your Comment is submitted !";
}
};
}
</script>
</head>
<body>
<div id="message">
<button id="like">Like</button>
<button id="dislike">disLike</button>
</div>
</body>
</html>
وقتی با جی کوئری میشه نوشت چرا این همه کد بنویسیم
اصلا میشه این کدها رو عیب یابی هم کرد ؟
1: برای استفاده بهتر از کوکی به یه Cookies Management نیاز دارید
حالا چه بصورت
jQuery Cookies Management
یا
Pure Javascript Cookies Management
درهرصورت حجم کدنویسی فرقی نداره به جز چند خط
2: تا عیب یابی چی باشه!