导致错误的JavaScript/jQuery变量范围
我有一个非常简单的代码片段和一个非常(可能)简单的更改 我无法访问jQuery脚本中需要的变量:导致错误的JavaScript/jQuery变量范围,javascript,jquery,variables,global-variables,scope,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(
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
的值更改为任意值时,我的浏览器抱怨对象未设置。(错误:对象未定义
)
我怎样才能在整个脚本中使用函数内外的变量呢
更新: 错误是由线路故障引起的
$('#image-title').text( $(Objects.moveMe).attr('data-child-title') );
我第一次尝试使用变量。这不是范围问题。问题是,正如错误所说,
对象
是未定义的
。看起来您想设置它的属性,因此将其初始化为对象文字:
var Objects = {};
目前,您正在尝试有效地:
undefined.moveMe = $(this);
当您声明一个变量时,它的值是未定义的
,直到您为它指定了其他值为止。通过为其指定空对象文字,您可以设置该对象的属性。尝试:
a==未定义,但在当前范围内声明
您的对象必须设置为对象
var Objects = {};
请注意,$(Object.moveMe)
基本上是在做$($(this))
,这是多余的。我不确定,但我认为您需要使用var Objects=new Object@pimvdb它将被用于其他功能,这就是为什么需要它。上面的例子只是概述我遇到的问题。没问题,很高兴我能帮忙:)
var Objects = {};