JavaScript/jQuery变量范围导致错误
我有一个非常简单的代码片段和一个真正(可能)简单的更改,我需要做的。JavaScript/jQuery变量范围导致错误
我无法访问一个变量,我需要在我的jQuery脚本:当我尝试的Objects.moveMe
值更改为任何
var Objects; // Used to store stuff
enable_reordering();
function enable_reordering()
{
$('a.move-object').click(function(){
Objects.moveMe = $(this);
$('#image-title').text($(Objects.moveMe).attr('data-child-title'));
return false;
});
}
,我的浏览器是呻吟对象未设置。 (Error: Objects is undefined
)。
我该如何做到这一点,以便我可以在整个脚本中使用变量内外的函数?
更新:
错误是由行
$('#image-title').text($(Objects.moveMe).attr('data-child-title'));
我第一次尝试使用这个变量引起的。
这不是范围问题。问题是,如错误所述,Objects
是undefined
。它看起来像你想设置的一个属性,所以将其初始化为对象文本:
var Objects = {};
目前,你正在尝试做的是有效的:
undefined.moveMe = $(this);
当你声明一个变量,它的值是undefined
,直到您为其分配其他值。通过为它分配一个空的对象文字,您可以设置该对象的属性。
美丽!谢谢。 – Alex 2012-03-02 18:14:01
没问题,很高兴我能帮忙:) – 2012-03-02 18:16:18
var a;
alert(a);
a === undefined
但在当前范围内声明..
你的对象已经被设置为对象
var Objects = {};
需要注意的是'$(Object.moveMe )'基本上在做'$($(this))',这是多余的。 – pimvdb 2012-03-02 18:12:47
我不确定,但我认为你需要使用var Objects = new Object; – tildy 2012-03-02 18:15:15
@pimvdb它将被用于其他功能,这就是为什么它需要。上面的例子只是概述我遇到的问题。 – Alex 2012-03-02 18:19:54