如何在click函数之外调用变量

时间:2013-09-12 04:51:37

标签: javascript jquery function

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'。有什么想法吗?

4 个答案:

答案 0 :(得分:0)

var $myvar;
$(selector).on('click',function(){
   $myvar = 'hi';
});
alert($myvar);

通过在点击功能中使用var,您将$myvar设置为local variable,只能在点击功能中访问。

要使您的变量可在外部访问,您必须在外面声明它。

有关它的更多信息javascript-variable-scope

答案 1 :(得分:0)

你必须在函数之外声明变量,如此

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

答案 2 :(得分:0)

你不能,因为你在函数内设置$myvar,它仅限于该函数的范围。如果您希望能够访问函数外部的变量,您可以:

  1. 省略var关键字,这将使其成为全局变量,或
  2. 在函数之外定义它:
  3. var $myvar;
    $(selector).on('click',function(){
        $myvar = 'hi';
    });
    

答案 3 :(得分:0)

您需要在函数外部定义$myvar

var $myvar;
$('#click').on('click',function(){
    $myvar = 'hi';
    checknow();
    return false;
});

function checknow()
{
    alert($myvar);
}

FIDDLE