Pergunta

Eu estou usando mootools-1.2.3 no momento e estou tendo problemas para obter uma variável a ser acessível fora de uma função.

Eu preciso definir a variável na função domready, porque caso contrário o DOM não foi carregado e funções do seletor não vai funcionar (eu não posso colocar o script no final do HTML Eu não tenho o controle de quando a estrutura escreve as referências a scripts externos).

Existe uma maneira em referenciar a mesma variável em outra função?

window.addEvent('domready', function() {
    var myVar = new myClass('someURL', 'elementSelectorString');
    document.addEvent('click', function(event) {
        myVar.doSomeStuff(var1, var2);
    });
});

window.addEvent('unload', function(event) {
    // Reference to myVar variable in domready function.
    myVar.cleanUpStuff();
});
Foi útil?

Solução

Coloque var myVar; no nível superior (acima dos addEvents), e remover o var da função domready. Variáveis ??são visíveis no âmbito em que são declarados.

Outras dicas

variáveis ??globais são realmente propriedades do objeto janela, assim você pode usar:

window.myVar

Simplesmente definir myVar sem a palavra-chave var. A falta de var durante uma atribuição implica global.

window.addEvent('domready', function() {
    myVar = new myClass('someURL', 'elementSelectorString');
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top