无需刷新即无法删除最近创建的cookie

时间:2016-03-27 17:28:10

标签: javascript jquery cookies

所以这个真的让我难过,我无法弄明白为什么。

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

我唯一想到的问题是,在解析DOM之后添加cookie,并且在重新解析之前基本上找不到cookie。 但是,我不知道该怎么做。

有关如何在DOM中创建cookie后立即删除cookie的任何建议都将非常感激。

1 个答案:

答案 0 :(得分:0)

我明白了,解决方案很简单。

$( document ).on( "click", ".remove-this", function() {
    var unsetId = $(this).attr('data-removeid');
    Cookies.remove('selectedProduct-'+unsetId, { path: '' });
});

我没有按照原来的意图使用.on()函数。 我使用它的方式是不检查解析DOM后设置的cookie。