如何使用单击函数内声明的变量

时间:2011-11-21 22:25:53

标签: javascript jquery

这感觉就像一个非常基本的问题......我找不到答案!只是一个基本的jQuery点击功能:

$('button.one').click(function () {
    var selectorVal = 'one';
    $('div#one').slideDown('slow');
    $('div#two').slideUp('fast');
    return selectorVal;
}

如何在函数外检索和输出selectorVal?非常感谢!

5 个答案:

答案 0 :(得分:1)

应该使selectorVal像这样的全局变量;无需返回任何具有该功能的内容:

var selectorVal = '';
$('button.one').click(function(){
    selectorVal = 'one';
    $('div#one').slideDown('slow');
    $('div#two').slideUp('fast');
}

答案 1 :(得分:1)

您有两种选择:

  1. 在回调之外定义变量:

    var selectorVal;
    $('button.one').click(function (){
        selectorVal = 'one';
        $('div#one').slideDown('slow');
        $('div#two').slideUp('fast');
    });
    // somewhere here check for selectorVal value (if any)
    
  2. (更好)使用另一个回调:

    var doSomethingWithSelectorVal = function(selectorVal){
        // here do something with updated selectorVal value
    };
    $('button.one').click(function (){
        selectorVal = 'one';
        $('div#one').slideDown('slow');
        $('div#two').slideUp('fast');
        doSomethingWithSelectorVal(selectorVal);
    });
    
  3. 正如我上面提到的,第二个选项是更好的选择,因为在这种情况下使用回调是最合适的。

答案 2 :(得分:0)

你能在函数外部创建一个全局变量,然后在函数内部添加一个值(不需要返回任何东西)吗?

答案 3 :(得分:0)

取决于您何时需要访问它 例如,如果您确定在执行单击功能后访问它,则可以使用以下技术:

var outer_variable=null;
$('button.one').click(function () {
var selectorVal = 'one';
$('div#one').slideDown('slow');
$('div#two').slideUp('fast');
outer_variable=selectorVal;
return True;
}

答案 4 :(得分:0)

您可以使用窗口。 像

这样的东西
$('button.one').click(function () {
    window["var2"]="somedata";
}

之后,您将可以通过窗口访问变量,也可以访问全局范围。 您可以在函数之外编写alert(var2),它将起作用。

相关问题