Sobrescrição de Valores
Olá galera tenho um problema, estou quebrando a cabeça aqui mas não consigo fazer funcionar:
Tenho uma variável global que assume um valor inicial (green), mas como podem ver na primeira linha:
document.addEventListener("deviceready", temaAcesso, false);
Eu chamo a função temaAcesso quando o dispositivo ja estiver carregado, ou seja a troca de valores da variavel global é feita dentro de uma função que é chamada a partir dessa temaAcesso.
A troca seria: green (inicial) para red (que esta cadastrado num BD).
Mas como o dispositivo está carregado (toda a página ja foi carregada) a troca de valores é feita mas não é mostrada na ultima função:
var COLOUR_KEY = '__BASIC_APP_COLOUR__';
var colourPages = [], colour = localStorage[COLOUR_KEY] || _tema;
function setupPageColour(page) {
var $topbar = $(page).find('.app-topbar');
colourPages.push($topbar);
if (colour) {
$topbar.addClass(colour);
}
}
Pois a mesma ja foi executada com o valor green, Minha questão é, existe uma forma de fazer com que o Javascript execute PRIMEIRO a função temaAcesso e somente depois dela ter sido executada completamente executar a função setupPageColour?
Caso precisem do código completo:
// Quando o dispositivo carregar chamo a função temaAcesso
document.addEventListener("deviceready", temaAcesso, false);
_tema = 'green';
// Caso a tabela TEMA exista.
function sucessoAcessoTabelaTema(tx, results) {
var len = results.rows.length;
for (var i = 0; i < len; i++) {
_tema = results.rows.item(i).cor;
}
}
// Caso a tabela TEMA não exista.
function erroAcessoTabelaTema(tx) {
tx.executeSql('CREATE TABLE IF NOT EXISTS TEMA (id unique, cor)');
tx.executeSql('INSERT INTO TEMA (id, cor) VALUES (1, "red")');
}
function erroAcessoTabela() {
//alert('erro');
}
function successoAcessoTema() {
//alert('sucesso');
}
// Crio a tabela TEMA
function verificaTema(tx) {
tx.executeSql('SELECT * FROM TEMA', [], sucessoAcessoTabelaTema, erroAcessoTabelaTema);
}
// Abro o DB e chamo a função verificaTema.
function temaAcesso() {
var db = window.openDatabase("Database", "1.0", "GPainel", 200000);
db.transaction(verificaTema, erroAcessoTabela, successoAcessoTema);
}
var COLOUR_KEY = '__BASIC_APP_COLOUR__';
var colourPages = [], colour = localStorage[COLOUR_KEY] || _tema;
function setupPageColour(page) {
var $topbar = $(page).find('.app-topbar');
colourPages.push($topbar);
if (colour) {
$topbar.addClass(colour);
}
}
Obrigado :)
Discussão (1)
Carregando comentários...