如何使用在click函数中声明的变量
How do I use a variable declared inside a click function
这感觉像是一个非常基本的问题…我找不到答案!只是一个基本的jQuery点击函数:
$('button.one').click(function () {
var selectorVal = 'one';
$('div#one').slideDown('slow');
$('div#two').slideUp('fast');
return selectorVal;
}
我如何检索和输出selectorVal外的功能?非常感谢!
您有两个选择:
-
在回调之外定义变量:
var selectorVal; $('button.one').click(function (){ selectorVal = 'one'; $('div#one').slideDown('slow'); $('div#two').slideUp('fast'); }); // somewhere here check for selectorVal value (if any)
-
(更好)使用另一个回调:
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)
,它将工作。
相关文章:
- 使用同一对象中的其他变量声明变量
- 用||声明变量
- 使用javascript使用for循环声明变量
- JavaScript-用for循环项声明变量
- try声明变量的作用域
- 有没有一种方法可以使用函数参数的值来声明变量
- 在使用javascript再次声明变量之前,请先清除或删除该变量
- Javascript未声明变量
- 在Javascript中,我可以在声明变量之前使用它吗
- 在html文档的开头声明变量
- 按什么顺序声明变量和函数
- 如何以正确的方式在jQuery中声明变量
- 在 Angular 服务中接收函数的未声明变量
- 字典和声明变量
- 需要一些有关以以下样式声明变量的信息
- 在 jQuery 中使用常量声明变量
- 从外部文件在打字稿中声明变量得到引用错误:..未定义
- JavaScript,声明变量时混淆语法
- 在 javascript 函数和内存管理中声明变量
- Javascript 使用 if 语句声明变量