JavaScript / jQuery变量范围导致错误

时间:2012-03-02 18:09:40

标签: javascript jquery variables global-variables scope

我有一个非常简单的代码片段和一个我需要做的真正(可能)简单的更改。

我无法在jQuery脚本中访问我需要的变量:

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;
    });
}

当我尝试将Objects.moveMe的值更改为任何内容时,我的浏览器会发现没有设置对象。 (Error: Objects is undefined)。

我怎样才能在整个脚本中使用变量进出函数?


更新

错误是由行

引起的
$('#image-title').text( $(Objects.moveMe).attr('data-child-title') );

我首先尝试使用变量。

2 个答案:

答案 0 :(得分:3)

尝试:http://jsbin.com/ocodoz/

var a;
alert(a);

a === undefined但在当前范围内宣布..

您的对象必须设置为对象

var Objects = {};

答案 1 :(得分:2)

这不是范围问题。问题在于,正如错误所述,Objectsundefined。看起来您想设置它的属性,因此将其初始化为对象文字:

var Objects = {};

目前,您要做的是:

undefined.moveMe = $(this);

声明变量时,其值为undefined,直到为其指定其他值。通过为其指定一个空对象文字,您可以设置该对象的属性。