【发布时间】:2011-08-15 10:02:24
【问题描述】:
我在 testFun.js
中有一个函数var testFunc=function{
var hasCar=false;
return{
checkCar: function(){
for(var i=0; i<5; i++){
MyCar.check(hasCar); //defined in following MyCar.js
}
}
}
}();
MyCar.js中的另一个函数
var MyCar=function(){
var createCar=function(){
//Create a car
//var car = new Car();
}
return{
check: function(hasCar){
console.log(hasCar); //PROBLEM HERE: fierBug console output is "false" always even CHECK_BUTTON has been clicked, why?
var handler=function(){
if(!hasCar)
createCar();
hasCar=true;
}
//CHECK_BUTTON is a button on UI
CHECK_BUTTON.click(handler);
}
}
}();
正如你在MyCar模块模式中看到的,当CHECK_BUTTON被点击时,我会调用createCar()函数,并将hasCar的值从false改为真实。
hasCar 在 testFunc 模块模式中定义,并传递给MyCar.check(hascar)。
我在MyCar.check() 函数中有一个fireBug 控制台输出,我希望当鼠标单击CHECK_BUTTON 时,控制台输出将为true,但我总是得到false强>,为什么?我使用hasCar 来检查CHECK_BUTTON 是否被点击过一次,但如果它总是保持 false 值,我不知道。如何摆脱这个?
【问题讨论】:
-
我看不懂你的流程,你能放一些html代码吗......?
-
CHECK_BUTTON 是页面上的一个按钮,仅此而已....我的问题是关于 javascript...我只是无法弄清楚为什么在单击 CHECK_BUTTON 后“hasCar”仍然是错误的,因为你看,应该改成true。'
-
你在 check_button 的 onclick 上调用了什么函数?
标签: javascript jquery dom-events javascript-framework