我想在一周的给定日期动态地向一个链接添加一个类来显示它,并让链接保持可见,直到被点击。单击时,应删除该类,然后隐藏链接并保持隐藏,直到星期几返回。
这就是我的尝试。
jQuery(function($) {
var day = new Date().getDay();
if( day == 4 ) {
$(".link").addClass("shown");
}
$(".link").click(function(e) {
e.preventDefault();
$(this).removeClass("shown");
});
});
单击时会正确删除,但只要存在24小时,链接就会在页面重新加载时显示。实现目标的正确编码是什么?
答案 0 :(得分:1)
扩展louisik1的回答,以及我的评论,这是一个如何使用Cookie完成的基本示例:
https://jsfiddle.net/L9ojth2n/1/具有此版本的工作版本。
首先,在点击时,检查它是哪个链接,并将其存储为在第二天午夜到期的cookie(如果您想在一周中的多天显示链接):
var expires=new Date();
expires.setDate(expires.getDate()+1);
expires.setHours(0);
expires.setMinutes(0);
expires.setSeconds(0);
expires.setMilliseconds(0);
document.cookie="clickedLink"+$(".link").index(this)+"=yes;expires="+expires.toUTCString()+";path=/";
第二,当您接下来可视化链接时,请检查Cookie以查看是否已点击任何链接:
if(document.cookie.split(';').reduce(function(object,cookie){
var data=cookie.split('=');
object[data[0].trim()]=data[1];
return object;
},{})['clickedLink'+$('.link').index(this)]!="yes"){
$(this).addClass("shown");
}
请注意,精通技术的用户可能会破坏此功能并在一天内多次显示链接,如果他们删除了Cookie。要求特定用户登录并在服务器上存储数据是最安全的。
答案 1 :(得分:0)
是的,您需要存储已经点击链接的用户的记录。由于页面将重新加载所有脚本并重新设置所有变量等,因此您需要通过其他方式存储“长寿命”数据,其中有几种。
任何这些都是实现目标的正确方法,并且每个目标都记录在案。
干杯