2015-02-05 67 views
0
var selection = document.getElementById('selection'); 
var closed = true; 

function openorclosebar() { 

    if(closed == false){ 
     selection.style.webkitAnimation='bounceOutDown 1s forwards'; 
     selection.style.animation='bounceOutDown 1s forwards'; 
     closed = false; 
    } 
    else{ 
     selection.style.webkitAnimation='bounceInUp 1s forwards'; 
     selection.style.animation='bounceInUp 1s forwards'; 
     closed = true; 
    }; 
} 

如何获取全局变量“选择”和“关闭”以使用它们。我试过“window.selection”和“window.closed”,但没有任何帮助。如果你有一个想法,请帮助我,这是非常重要的项目。函数内部无法获取全局变量(javascript)

+3

你在'openorclosebar'里面的代码将会成功访问你在函数外部声明的变量。你可能误解了这个问题(我期望'selection'不会保留你认为应该保留的值) – Quentin 2015-02-05 14:05:36

+0

现在我该怎么办? – 2015-02-05 14:08:49

+3

'if(close == false){close = false}'这里有什么问题? – Hacketo 2015-02-05 14:09:05

回答

0

global closed variable是只读的:这是window小号.closed财产 - 比如has happened before with .name :-)

使用IEFE让你的局部变量:

(function() { 
    var selection = document.getElementById('selection'); 
    var closed = true; 

    function openorclosebar() { 
     if(!closed) { 
      selection.style.webkitAnimation='bounceOutDown 1s forwards'; 
      selection.style.animation='bounceOutDown 1s forwards'; 
      closed = false; 
     } else { 
      selection.style.webkitAnimation='bounceInUp 1s forwards'; 
      selection.style.animation='bounceInUp 1s forwards'; 
      closed = true; 
     } 
    } 
}()); 

也有看看other unsafe names浏览器环境。

相关问题