如何使用在click函数中声明的变量

How do I use a variable declared inside a click function

本文关键字:声明 变量 函数 何使用 click      更新时间:2023-09-26

这感觉像是一个非常基本的问题…我找不到答案!只是一个基本的jQuery点击函数:

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

我如何检索和输出selectorVal外的功能?非常感谢!

您有两个选择:

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

正如我上面提到的,第二个选项是更好的选择,因为在这种情况下使用回调是最合适的。

应该将selectorVal设置为这样的全局变量吗?不需要用这个函数返回任何东西:

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

你可以在函数之外做一个全局变量,然后在函数内部给它添加一个值(不需要返回任何东西)?

取决于您何时想要访问它例如,如果您确定在执行click函数之后访问它,您可以使用这样的技术:

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

您可以使用window。就像

$('button.one').click(function () {
    window["var2"]="somedata";
}

之后,您不仅可以通过窗口访问变量,还可以访问全局作用域。您可以在函数之外编写alert(var2),它将工作。