Tentei esta pergunta no StackOverflow, mas não obtive nenhuma resposta. Esperando que todos vocês possam ajudar.
Criando um aplicativo de mapeamento da web em Javascript / Dojo:
Quando carrego o aplicativo em um navegador, ele carrega os elementos html, mas depois interrompe o processamento. Eu tenho que atualizar o navegador para que ele carregue o restante da página e o javascript.
Eu testei e depurei o dia todo e descobri que meus arquivos JS externos estavam no local errado (eu sou um novato). Corrigido isso e o aplicativo carrega muito bem ... EXCETO um dos meus arquivos não está sendo lido corretamente ou não.
Quando movo o conteúdo do arquivo JS externo em questão para o código principal no padrão, a funcionalidade que eles contêm funciona bem ... MAS o mapa requer a atualização novamente.
Perplexo. Abaixo está o código no arquivo JS externo que está causando o meu problema. Não consigo descobrir por que é um problema porque as funções funcionam como esperado quando não são externas.
Qualquer ajuda é muito apreciada.
//Toggles
function basemapToggle() {
basemaptoggler = new dojo.fx.Toggler({
node: "basemaptoggle",
showFunc : dojo.fx.wipeIn,
showDuration: 1000,
hideDuration: 1000,
hideFunc : dojo.fx.wipeOut
})
}
dojo.addOnLoad(basemapToggle);
function layerToggle() {
layertoggler = new dojo.fx.Toggler({
node: "layertoggle",
showFunc : dojo.fx.wipeIn,
showDuration: 750,
hideDuration: 750,
hideFunc : dojo.fx.wipeOut
})
}
dojo.addOnLoad(layerToggle);
function legendToggle() {
legendtoggler = new dojo.fx.Toggler({
node: "legendtoggle",
showFunc : dojo.fx.wipeIn,
hideFunc : dojo.fx.wipeOut
})
}
dojo.addOnLoad(legendToggle);
Aqui está a parte da frente do meu código
<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=7, IE=8, IE=9" />
<meta name="viewport" content="initial-scale=1, maximum-scale=1,user-scalable=no"/>
<title>
Zoning Classifications
</title>
<link rel="Stylesheet" href="ZoningClassifications.css" />
<link rel="stylesheet" type="text/css" href="http://serverapi.arcgisonline.com/jsapi/arcgis/3.0/js/dojo/dijit/themes/claro/claro.css">
<link rel="stylesheet" type="text/css" href="http://serverapi.arcgisonline.com/jsapi/arcgis/3.0/js/esri/dijit/css/Popup.css">
<link rel="stylesheet" type="text/css" href="http://serverapi.arcgisonline.com/jsapi/arcgis/3.0/js/dojo/dojox/grid/resources/Grid.css">
<link rel="stylesheet" type="text/css" href="http://serverapi.arcgisonline.com/jsapi/arcgis/3.0/js/dojo/dojox/grid/resources/claroGrid.css">
<style type="text/css">
</style>
<script src="JS/layers.js"></script>
<script src="JS/search.js"></script>
<script src="JS/basemapgallery.js"></script>
<script src="JS/identify.js"></script>
<script src="JS/toggles.js"></script>
<script type="text/javascript">
var djConfig = {
parseOnLoad: true
};
</script>
<script type="text/javascript" src="http://serverapi.arcgisonline.com/jsapi/arcgis/?v=3.0"></script>
<script type="text/javascript">
dojo.require("dijit.dijit"); // optimize: load dijit layer
dojo.require("dijit.layout.BorderContainer");
dojo.require("dijit.layout.ContentPane");
dojo.require("esri.map");
dojo.require("dijit.TitlePane");
dojo.require("esri.dijit.BasemapGallery");
dojo.require("esri.arcgis.utils");
dojo.require("esri.tasks.locator");
dojo.require("esri.dijit.Legend");
dojo.require("esri.dijit.Popup");
dojo.require("dijit.form.Button");
dojo.require("dojo.fx");
dojo.require("dijit.Dialog");
dojo.require("dojo.ready");
dojo.require("dijit.TooltipDialog");
dojo.require("dojox.grid.DataGrid");
dojo.require("dojo.data.ItemFileReadStore");
dojo.require("esri.tasks.find");
EDIT 2 Reescrevi completamente o aplicativo, colocando todo o código (exceto o css) no arquivo default.html principal. Testei peça por peça para garantir que funcionasse como eu queria. Adicionar o código de alternância é o único código que o lança e causa a atualização extra.
Portanto, por enquanto estou usando dijit.TitlePane para manter os elementos suspensos (galeria de mapas base, camadas, legenda). No entanto, com isso, você não pode alterar a aparência e criar imagens, que é o meu objetivo final.
Alguém pode sugerir uma alternativa para que eu possa usar 3 imagens diferentes para que, quando você clicar na imagem e no menu suspenso, abrir a galeria de mapas base, a lista de camadas e a legenda?