说我有这样的功能:
var some_value = 0
function refresh(something)
{
// Log our value
console.log(some_value);
// If this function was invoked by clicking our some_div created below, set some_value
if(last.getAttribute("baby"))
{
some_value = 1;
}
// Create some div, give it a random attribute and add an onclick event
some_div.setAttribute("baby");
some_div.addEventListener("click", function(){refresh(this);}, false);
// Log our some_value
console.log(some_value);
}
// Call our function
refresh(null)
我希望控制台看起来像这样:
//refresh(null)
0
0
//clicked our some_div
0
1
相反,如果看起来像这样:
//refresh(null)
0
0
//clicked our some_div
1
1
我的some_value何时被设置?这让我发疯。我真的很感激一些帮助...
答案 0 :(得分:0)
var some_value = 0
只执行一次,因为它在函数外部。第一次单击div后,some_value设置为1。
您可能不小心点击了它。
下次通过单击div调用refresh()时,some_value
的值先前已设置为1。然后结果将是
1
1
要获得所需的结果,请将some_value设置为刷新内的局部变量。
function refresh(something)
{
var some_value = 0 #value is initialised every time
.
.
.
}
会给出
0
1
每次点击div。