这是jQuery UI小部件和插件中使用的函数 -
var select = function( event, ui ) {
var somevariable = 4;
}
如何在此函数之外获取var somevariable =
的值?
将它用作全局变量并不起作用:
var somevariable;
var select = function( event, ui ) {
var somevariable = 4;
}
在此代码var somevariable
中没有获得值' 4'当它放在var select =
编辑:为了使其更加详细,我想在另一个函数中使用此变量,如下面的jQuery UI插件:
$( "#id" ).autocomplete({
minLength: 0,
source: function( request, response ) {
if (somevariable == 5)
{
//do something
}
},
open: function( event, ui ) {
somevariable = 5;
}
});
在这种情况下,当触发open:
事件时,source:
无法检索到该值
答案 0 :(得分:6)
也许这就是你想要的?
var somevariable;
var select = function( event, ui ) {
somevariable = 4;
}
第3行没有var
,select
现在引用第1行声明的变量,而不是somevariable
内的新变量。
如果变量在函数内被声明为局部变量,则无法从函数外部访问它(但可以从该函数中声明的函数访问它,并且其值可以像往常一样传递)。事实上,它实际上不是一个非常强大的事实,它可以作为在Javascript中创建私有范围的手段。
另外,请考虑通过函数声明声明您的方法:
var somevariable;
function select(event, ui) {
somevariable = 4
};
(好处:稍短,悬挂到顶部 - 你可以在你定义它的地方之上调用它;缺点:稍微不那么直观,它可以被视为一等公民)。