这是我的代码
$('.sort').click(function(){
console.log($(this).attr('id'));
$.cookie('sortby', $(this).attr('id'), { expires: 25 });
//window.location.reload(true);
});
HTML
<button id="name" class="sort">Name</button>
<button id="price" class="sort">Price</button>
<button id="popular" class="sort">Popularity</button>
我的cookie结束为空,控制台显示为
popular
(an empty string)
它似乎正在获取正确的ID,但后来将其更改为null 有什么建议吗?
答案 0 :(得分:3)
在第二次调用中,$(this)对象改变了范围。以下应该有效:
$('.sort').click(function(){
console.log($(this).attr('id'));
var $this = $(this);
$.cookie('sortby', $this.attr('id'), { expires: 25 });
//window.location.reload(true);
});
答案 1 :(得分:0)
我认为这是因为当您提到“此”时,您的内部Cookie会改为
$('.sort').click(function(){
var id = $(this).attr('id')
$.cookie('sortby', id, { expires: 25 });
});
答案 2 :(得分:0)
不确定代码出错的地方,因为can not reproduce问题。
我会确保$.cookie
库正在加载,并确保在这方面做得很好。