ฉันลองคำถามนี้ใน StackOverflow แต่ไม่ได้รับคำตอบใด ๆ หวังว่าคุณทุกคนจะสามารถช่วยได้
การสร้างแอปพลิเคชันการจับคู่เว็บใน Javascript / Dojo:
เมื่อฉันโหลดแอพในเบราว์เซอร์มันจะโหลดองค์ประกอบ html แต่ก็หยุดการประมวลผล ฉันต้องรีเฟรชเบราว์เซอร์เพื่อให้โหลดส่วนที่เหลือของหน้าและจาวาสคริปต์
ฉันทำการทดสอบและแก้ไขจุดบกพร่องตลอดทั้งวันและคิดว่าฉันมีไฟล์ JS ภายนอกของฉันในจุดที่ผิด (ฉันเป็นมือใหม่) แก้ไขว่าและแอปโหลดได้ดีมาก ... ยกเว้นไฟล์ใดไฟล์หนึ่งของฉันที่ไม่สามารถอ่านได้อย่างถูกต้องหรือเลย
เมื่อฉันย้ายเนื้อหาของไฟล์ JS ภายนอกที่สงสัยไปยังรหัสหลักในค่าเริ่มต้นฟังก์ชันการทำงานที่พวกเขามีทำงานได้ดี ... แต่แผนที่ต้องการการรีเฟรชอีกครั้ง
นิ่งงัน ด้านล่างเป็นรหัสในไฟล์ JS ภายนอกที่ทำให้เกิดปัญหาของฉัน ฉันไม่สามารถเข้าใจได้ว่าทำไมมันถึงมีปัญหาเพราะฟังก์ชั่นทำงานได้อย่างที่คาดไว้เมื่อมันไม่ใช่ภายนอก
ความช่วยเหลือใด ๆ ที่ชื่นชมอย่างมาก
//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);
นี่คือส่วนหน้าของรหัสของฉัน
<!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");
แก้ไข 2 ฉันเขียนแอปใหม่อย่างสมบูรณ์โดยวางรหัสทั้งหมด (ยกเว้น css) ในไฟล์ default.html หลัก ฉันทดสอบทีละชิ้นเพื่อให้แน่ใจว่ามันทำงานตามที่ฉันต้องการ การเพิ่มรหัส toggles เป็นรหัสเดียวที่ส่งมาและทำให้เกิดการรีเฟรชพิเศษ
ดังนั้นสำหรับตอนนี้ฉันกำลังใช้ dijit.TitlePane เพื่อเก็บองค์ประกอบแบบหล่นลง (แกลเลอรี่ basemap, เลเยอร์, ตำนาน) อย่างไรก็ตามด้วยสิ่งนี้คุณไม่สามารถเปลี่ยนรูปลักษณ์และความรู้สึกเพื่อสร้างภาพซึ่งเป็นเป้าหมายสุดท้ายของฉัน
ใครสามารถแนะนำทางเลือกอื่นเพื่อให้ฉันสามารถใช้ 3 ภาพที่แตกต่างกันดังนั้นเมื่อคุณคลิกที่ภาพและเมนูแบบหล่นลงจะเปิดขึ้นถือแกลเลอรี่แผนที่, รายการเลเยอร์และตำนาน?