Присвоение переменной куки-файлу .. не нужно ждать!Наоборот - PullRequest
1 голос
/ 19 июля 2010

Я бы хотел назначить cookie для переменной ...

например. var aVariable = $.cookie("moo");

Я использую функции jQuery cookie - нужно ли мне установить cookie и установить переменную одновременно или что-то в этом роде?

Помогите, пожалуйста, пожалуйста!

^. ^

Мой код:

function goBackToPosition() {
    var xPos = $.cookie("yourPositionX");
    var yPos = $.cookie("yourPositionY");

        console.log(xPos);
        console.log(yPos);

    if (xPos) {
        alert("xpos!");
        $(this).animate({
            top:    yPos,
            left:   xPos
    }, 400, function(){
            $.cookie("yourPositionX", null);
            $.cookie("yourPositionY", null);
    });

    }
}

Я получаю следующую ошибку: a.ownerDocument is undefined

Ответы [ 3 ]

3 голосов
/ 19 июля 2010

Ваш синтаксис здесь неправильный:

$(this).css(function() {
    top:    yPos,
    left:   xPos
}, 400, function() {
    $.cookie("yourPositionX", null);
    $.cookie("yourPositionY", null);
});

Возможно, вы имели в виду:

$(this).css({
    top:    yPos,
    left:   xPos
}).fadeIn(400, function(){
    $.cookie("yourPositionX", null);
    $.cookie("yourPositionY", null);
});

Или:

$(this).animate({
    top:    yPos,
    left:   xPos
}, 400, function(){
    $.cookie("yourPositionX", null);
    $.cookie("yourPositionY", null);
});

В ответ на ваше обновление/ новый выпуск:

$(this) не будет работать в области действия goBackToPosition, так как это ссылается на эту функцию, а не на элемент.Вам придется изменить $(this) на $('selector'), чтобы заставить его работать.

Или используйте goBackToPosition.call($('selector')), если вы хотите продолжать использовать это.Функция вызова изменяет значение этого значения при выполнении вызываемой функции, аналогичная функция имеет вид apply.

1 голос
/ 19 июля 2010

this не имеет смысла в этом контексте.Либо замените его селектором, либо придайте ему значение:

jQuery.fn.goBackToPosition = function() {
    var xPos = $.cookie("yourPositionX");
    var yPos = $.cookie("yourPositionY");

        console.log(xPos);
        console.log(yPos);

    if (xPos) {
        alert("xpos!");
        this.animate({
            top:    yPos,
            left:   xPos
        }, 400, function(){
                $.cookie("yourPositionX", null);
                $.cookie("yourPositionY", null);
        });

    }
}

Итак:

$(selector).goBackToPosition()
0 голосов
/ 19 июля 2010

Вы можете иметь в виду.

 $(this).css({
            top:    yPos,
            left:   xPos
        }).fadeIn(400, function() {
            $.cookie("yourPositionX", null);
            $.cookie("yourPositionY", null);
        });

Синтаксис, который вы имели, не имел смысла.Вы передавали функцию, но тело функции выглядело как литерал объекта.Как сказал Балуптон, вам может понадобиться объединить с fadeIn.

{
   top:    yPos,
   left:   xPos
}

так же, как:

{
   "top":    yPos,
   "left":   xPos
}

Создает объект со свойствами top и left со значениями yPos и xPos соответственно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...