jQuery .attr ('id') возвращает пустой - PullRequest
1 голос
/ 04 июня 2011

Вот мой код

    $('.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)

Кажется, он получает правильный идентификатор, но затем меняет его на ноль Есть предложения?

Ответы [ 3 ]

3 голосов
/ 04 июня 2011

Во время вашего второго вызова объект $ (this) изменил область действия.Должно работать следующее:

    $('.sort').click(function(){
        console.log($(this).attr('id'));
        var $this = $(this);
        $.cookie('sortby', $this.attr('id'), { expires: 25 });
        //window.location.reload(true);
    });
0 голосов
/ 04 июня 2011

Не уверен, где ваш код идет не так, как я не может воспроизвести проблему.

Я хотел бы убедиться, что библиотека $.cookie загружается, и убедиться, что с этой стороны все хорошо.

0 голосов
/ 04 июня 2011

Я думаю, это потому, что ваш внутренний cookie, когда вы ссылаетесь на "this", вместо этого попытается

$('.sort').click(function(){
    var id = $(this).attr('id')
    $.cookie('sortby', id, { expires: 25 });
});
...