我有一个名为progress的变量,如下所示
点击下面的图片,我希望进度设置为0;我正在尝试下面
var progress = 10;
var progress2 = $(".close2 img").click(function() {
// if user clicks the reset button (Start Over) then
var progress = 0;
//console.log(progress);
return progress;
});
但它失败了..进度在范围内设置为零。但在外面我无法通过它...有人可以帮助我弄清楚我犯的错误吗?
答案 0 :(得分:2)
只做
$(".close2 img").click(function() {
progress = 0;
//console.log(progress);
return progress;
});
使用var时,您将在函数内创建一个变量(具有相同名称)。
PD:正如@adeneo所说,尝试捕获jQuery监听器的输出是没用的。您的progress2声明将始终是DOM元素的数组。以此功能为例
var true_body=jQuery('body').click(function() { return true; });
似乎true_body总是会收到true
作为其值。真相是,true_body是
[<body>....all body contents here...</body>]
答案 1 :(得分:2)
您将局部变量progress
设置为0,而外部progress
保持不变。从var
移除var progress = 0;
以不声明新变量。
答案 2 :(得分:0)
您的代码声明了一个新的进度变量,该变量位于Click处理程序的范围内。您可以从封闭的范围访问progress变量,如下所示:
var progress = 10;
$(".close2 img").click(function() {
progress = 0;
});