在不刷新的情况下无法删除最近创建的cookie

Unable to delete recently created cookie without refreshing

本文关键字:最近 删除 创建 cookie 刷新 情况下      更新时间:2023-09-26

所以这一次真的让我很困惑,我不知道为什么。

我遇到的问题是,当我使用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。