2016-03-27 11 views
0

これは本当に私を困惑させてしまいました。最近作成したクッキーを更新せずに削除することができません

問題は、onclickイベントを使用して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:''}); 
}); 

今すぐクッキーを設定するだけで正常に動作します。

問題は、ページを再読み込みせずに削除しようとしたときに発生します。

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

新たに追加したクッキーをクリックしても、それ自体は削除されません。 しかし、再ロードして ".remove-this"ボタンを再度クリックすると、クッキーが削除されます。

問題があると思っているのは、DOMが解析された後にクッキーが追加され、再解析されるまで本質的に見つからないということだけです。 しかし、私はそれをどうやってやるのか考えていません。

クッキーをDOMで作成した直後にクッキーを削除する方法については、何かアドバイスをいただければ幸いです。

+1

Cookieの有効期限を過去の日付に設定しようとしましたか?また、特定のjquery Cookieプラグインを使用していますか? – dewd

+0

私は元々raw jsで設定していましたが、以来、使用開始しました https://github.com/js-cookie/js-cookie js.cookie.jsは文法上の誤りがあると考えていました。見ている。 – kwh71787

+1

'document.cookie =" username = kwh71787; expires =木曜日、2016年12月18日12:00:00 UTC; path =/";'はCookieを設定します。 'document.cookie =" username = kwh71787; expires = Thu、2015年12月18日12:00:00 UTC; path =/";'これを削除します。 – dewd

答えて

0

私はそれを理解しました。解決策はかなり単純でした。

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

私は本来の意図通りに.on()関数を使用していませんでした。 私が使っていた方法は、DOMが解析された後に設定されたクッキーをチェックしていないということでした。

+0

あなたの 'on'実装はうまくいきました。私はそれを実行するあなたのタイミングが何だったのだろうと思う。 'on '関数(つまり、特定の' .remove-this'要素)を実行したときにDOMオブジェクトが存在しない場合、イベントはDOMオブジェクトにアタッチされません。この回答はうまくいきますが、イベントのターゲット要素が2番目のオプションで指定したセレクタ基準を満たしているかどうかを確認するために、イベントのバブリングに依存しています。 – dewd

関連する問題