2015-02-05 5 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

+0

И что я могу сделать сейчас? –

+3

'if (close == false) {close = false}' что-то не так? – Hacketo

ответ

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 в браузера.

Смежные вопросы