1

这是我的代码

    $('.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 有什么建议吗?

4

3 回答 3

3

在您的第二次调用中, $(this) 对象已更改范围。以下应该有效:

    $('.sort').click(function(){
        console.log($(this).attr('id'));
        var $this = $(this);
        $.cookie('sortby', $this.attr('id'), { expires: 25 });
        //window.location.reload(true);
    });
于 2011-06-03T20:59:38.423 回答
0

我认为那是因为当您提及“this”时,您的内部 cookie 尝试改为

$('.sort').click(function(){
    var id = $(this).attr('id')
    $.cookie('sortby', id, { expires: 25 });
});
于 2011-06-03T20:59:08.760 回答
0

不确定您的代码哪里出错了,因为我无法重现该问题。

我会考虑确保$.cookie库正在加载并确保事情在这方面是好的。

于 2011-06-03T21:10:21.173 回答