Tôi đã thử câu hỏi này trên StackOverflow nhưng không nhận được câu trả lời nào. Hy vọng tất cả các bạn có thể có thể giúp đỡ.
Tạo một ứng dụng bản đồ web trong Javascript / Dojo:
Khi tôi tải ứng dụng trong trình duyệt, nó tải các phần tử html nhưng sau đó dừng xử lý. Tôi phải làm mới trình duyệt để tải nó xuống phần còn lại của trang và javascript.
Tôi đã thực hiện kiểm tra và gỡ lỗi cả ngày và phát hiện ra rằng tôi có các tệp JS bên ngoài của mình ở sai vị trí (Tôi là một tân binh). Đã sửa lỗi đó và ứng dụng tải rất nhiều ... NGOẠI TRỪ một trong những tệp của tôi không được đọc chính xác, hoặc tất cả.
Khi tôi di chuyển nội dung của tệp JS bên ngoài được đề cập đến mã chính theo mặc định, chức năng mà chúng chứa, hoạt động tốt ... NHƯNG bản đồ yêu cầu làm mới lại.
Bối rối. Dưới đây là mã trong tệp JS bên ngoài gây ra sự cố của tôi. Tôi không thể hiểu tại sao nó là một vấn đề bởi vì các chức năng hoạt động như mong đợi khi nó không phải là bên ngoài.
Bất kỳ trợ giúp nào cũng được đánh giá rất cao.
//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);
Đây là phần trước của mã của tôi
<!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 Tôi đã viết lại hoàn toàn ứng dụng đặt tất cả mã (trừ css) vào tệp default.html chính. Tôi đã thử nghiệm từng mảnh để đảm bảo nó hoạt động như tôi muốn. Thêm mã toggles là mã duy nhất ném nó và gây ra sự làm mới thêm.
Vì vậy, bây giờ tôi đang sử dụng dijit.TitlePane để giữ các phần tử thả xuống (bộ sưu tập bản đồ cơ sở, các lớp, chú giải). Tuy nhiên với điều này, bạn không thể thay đổi giao diện để biến chúng thành hình ảnh, đó là mục tiêu cuối cùng của tôi.
Bất cứ ai cũng có thể đề xuất một giải pháp thay thế để tôi có thể sử dụng 3 hình ảnh khác nhau để khi bạn nhấp vào hình ảnh và trình đơn thả xuống sẽ mở thư viện cơ sở, danh sách lớp và chú giải?