所以这一次真的让我很困惑,我不知道为什么。
我遇到的问题是,当我使用onclick事件设置cookie时。然后,如果不重新加载页面,尝试删除cookie是不可能的。然而,如果我重新加载页面,然后尝试删除它,我可以。
以下是我设置cookie的方式:
$(".add-prod").one("click", function(){
var productParent = $(this).attr('data-parentstep');
var productName = $(this).attr('data-product');
var productID = $(this).attr('data-ajaxid');
var productStep = $(this).attr('data-productstep');
Cookies.set('selectedProduct-'+productID,{'id':productID,'name':productName,'step':productStep,'parent':productParent,'thumbnail':productThumbnail},{expires:7,path:''});
});
现在设置cookie效果很好。
当我试图在不重新加载页面的情况下删除它时,问题就出现了。
$(".remove-this").on("click", function(){
var unsetId = $(this).attr('data-removeid');
Cookies.remove('selectedProduct-'+unsetId, { path: '' });
});
单击新添加的cookie不会自行删除。但是,在我重新加载并再次单击".remove this"按钮后,它将删除cookie。
我认为唯一可能的问题是,cookie是在解析DOM后添加的,在重新解析之前基本上找不到。然而,我不知道该怎么做。
任何关于如何在DOM中创建cookie后立即删除cookie的建议都将不胜感激。
我想明白了,解决方案相当简单。
$( document ).on( "click", ".remove-this", function() {
var unsetId = $(this).attr('data-removeid');
Cookies.remove('selectedProduct-'+unsetId, { path: '' });
});
我并没有按照最初的意图使用.on()函数。我使用它的方式不是检查DOM解析后设置的cookie。