这是最奇怪的事情。我的代码如下:Javascript函数变量突然变得不确定了?
function menuSwipe(init){
dojo.query('div.fill div.container div.menu div.group ul').forEach(function(item){
dojo.fx.wipeOut({
node: item,
duration: 1
}).play();
dojo.query('li', item).forEach(function(childrenItem){
if (dojo.hasClass(childrenItem, 'active'))
childrenItem.parentNode.className = 'items active';
});
if (item.className == 'items active') {
dojo.query('div.category', item.parentNode).forEach(function(parentItem){
setTimeout(function(){
menuOpen(parentItem, init);
doGrayscale(parentItem);
}, 100);
});
}
});
}
基本上init
保留在内存中,直到它在如果(item.className == 'items active')
条件。之后它变成undefined
。这是一个布尔值,我正在设置。只要它在if (item.className == 'items active')
之前就会保留其价值。我没有理由这样做。我试图做this.init =
并将其设置为var init = init
。有没有人知道或有某种方式可以在整个功能中保留其价值?它不是init的命名,我尝试了一个不同的名字,它仍然做同样的事情。
感谢, 达伦
您没有使用可变'init'任何地方,所以我不知道你是如何发现这是未定义或将怎么回事。这里有什么缺失吗? – Chuck 2010-10-28 23:42:23
嗨我修复它应该在哪里,忘记回滚一些修改。 – Darren 2010-10-28 23:43:42
调用'menuSwipe'时'init'的值和'menuOpen'看起来像/用'init'做了什么? – lincolnk 2010-10-29 01:26:32