我想将cookie分配给变量......
e.g。
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 :(得分: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'))
。
当被调用函数执行时,call函数会改变this的值,类似的函数是apply
。
答案 1 :(得分: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()
答案 2 :(得分: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
}
它创建一个具有顶部和左侧属性的对象,其值分别为yPos
和xPos
。