我正在构建一个教育应用程序,其中包含一系列指向rails中外部内容的链接,并且正在使用jquery / javascript。
我希望,在用户访问过某个链接后,我会想要一个'勾选'出现在链接旁边,表明他们已阅读过。我目前通过在cookie中存储信息来做这件事 - 标签的id作为键,图像的源作为值。勾号将持续与cookie一样长。
目前,在用户点击链接后,其ID(cookie中的键)将被推送到数组。然后我循环遍历数组,如果该键与id匹配,则会出现一个勾号...(该位正常)
我遇到的问题是,当我重新加载页面时,即使我的cookie在浏览器中,滴答也会消失。他们也从饼干中消失了。阵列
我的观点......
<%= javascript_include_tag "setCookies" %>
Read some stuff <br />
<a id="a" class="link" href="http://www.google.co.uk"
target="_blank">Google says this...</a>
<br />
<a id="b" class="link" href="http://www.bbc.co.uk/sport"
target="_blank">BBC says this...</a>
我的Jquery ......
$(document).ready(function(){ var cookies = [];
$(".link").click(function() {
var id = $(this).attr('id');
var href = $(this).attr('href');
setCookie(id, href, 1);
cookies.push(id)
for(var i = 0; i < cookies.length; i++) {
var elem = document.createElement("img");
elem.setAttribute("src", "https://www.freepik.com/free-icon/correct-symbol_744179.htm");
if (cookies[i] == id) {
document.getElementById(id).prepend(elem);
}
}
})
function setCookie (cname, cvalue, exhours) {
var date = new Date();
date.setTime(date.getTime()+exhours*60*60*1000);
var expires = "; expires=" + date.toGMTString();
document.cookie = cname+"=" + cvalue+expires + ";path=/";
}
});
非常感谢任何帮助。谢谢!