2010-07-19 45 views
1

我想給一個變量分配一個cookie ...分配一個變量到一個cookie ..不要等待!另一種方式

例如, var aVariable = $.cookie("moo");

我正在使用jQuery cookie functions - 我是否需要設置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

+0

你傳遞一個函數insted的對象,以'CSS()' – 2010-07-19 13:36:56

回答

3

你的語法是錯在這裏:

$(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

+0

好了,這擺脫了那個錯誤。我遇到的問題是我之前嘗試了animate()函數,並且出現此錯誤(即使是在您的代碼中):a。ownerDocument未定義# – 2010-07-19 13:42:07

+0

問題更新:) – 2010-07-19 13:56:14

+0

答案更新:) – balupton 2010-07-19 14:00:41

0

你可能意味着。

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

您的語法沒有意義。你正在傳遞一個函數,但函數的主體看起來像一個對象文字。正如balupton所說,您可能需要與fadeIn結合使用。

{ 
    top: yPos, 
    left: xPos 
} 

相同:

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

它創建與該值yPosxPos,分別在頂部和left屬性的對象。

1

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

完美,謝謝Eric! – 2010-07-19 14:15:04