jQuery
$(selector).on('click',function(){
var $myvar = 'hi';
});
alert($myvar); // this won't alert hi as this is out of click function
如何在函数外部调用 $myvar ?
更新
我尝试了以下答案,但似乎无法正常工作http://jsfiddle.net/G5vAv/1/
我想在警报时返回值“hi”。任何想法?
jQuery
$(selector).on('click',function(){
var $myvar = 'hi';
});
alert($myvar); // this won't alert hi as this is out of click function
如何在函数外部调用 $myvar ?
更新
我尝试了以下答案,但似乎无法正常工作http://jsfiddle.net/G5vAv/1/
我想在警报时返回值“hi”。任何想法?
您不能,因为您$myvar
在函数内部进行设置,所以它仅限于该函数的范围。如果您希望能够访问函数外部的变量,您可以:
var
关键字,这将使其成为全局变量,或者var $myvar;
$(selector).on('click',function(){
$myvar = 'hi';
});
您需要定义$myvar
函数的外部
var $myvar;
$('#click').on('click',function(){
$myvar = 'hi';
checknow();
return false;
});
function checknow()
{
alert($myvar);
}
var $myvar;
$(selector).on('click',function(){
$myvar = 'hi';
});
alert($myvar);
通过在 click 函数中使用 var ,您将其设置$myvar
为local variable
只能在 click 函数中访问的 a 。
要使您的变量可以在外部访问,您必须在外部声明它。
您必须像这样在函数外部声明变量
var $myvar;
$(selector).on('click',function(){
$myvar = 'hi';
});
alert($myvar);
发生这种情况是因为 javascript 中的范围不同,您的变量已应用于函数的范围,并且警报超出了该范围,因此无法访问它。
您只需要记住,javascript 会查找未关闭的变量,因此您只能访问在当前级别或更高级别声明的变量,这里有一些示例。
var level_1;
// I can access level 1
function somefunc() {
var level_2;
// I can access levels 1 & 2
return function() {
var level_3;
// I can access levels 1, 2 & 3
}
}