這是最奇怪的事情。我的代碼如下: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