1
在Firefox中開發Web地圖應用後,我在Internet Explorer(公司標準)中測試了我的代碼,發現dijit/form/Select使用最新Esri JavaScript v3.7。dijit/form/Select在Internet Explorer中使用Esri破壞Javascript 3.7
我看到的問題是,使用v3.7時,Select不會從列表中的第一個選項更新/更改。如果我將版本降低到3.6,它可以按預期工作。
我已經嘗試過從7到10的IE瀏覽器模式,並且在他們之間經歷了相同的行爲。有人可以證實他們正在經歷同樣的事情嗎?
在實施例3.7 - http://jsbin.com/aVIsApO/1/edit
在實施例3.6 - http://jsbin.com/odIxETu/7/edit
碼塊
var url = "http://services.arcgis.com/V6ZHFr6zdgNZuVG0/ArcGIS/rest/services/Street_Trees/FeatureServer/0";
var frmTrees;
require([
"esri/tasks/query",
"esri/tasks/QueryTask",
"dojo/dom-construct",
"dijit/form/Select",
"dojo/parser",
"dijit/registry",
"dojo/on",
"dojo/ready",
"dojo/_base/connect",
"dojo/domReady!"
], function(
Query,
QueryTask,
domConstruct,
Select,
parser,
registry,
on,
ready,
connect
) {
ready(function() {
frmTrees = registry.byId("trees");
var qt = new QueryTask(url);
var query = new Query();
query.where = "FID < 25";
query.orderByFields = ["qSpecies"];
query.returnGeometry = false;
query.outFields = ["qSpecies", "TreeID"];
query.groupByFieldsForStatistics = ["qSpecies"];
//query.returnDistinctValues = true;
qt.execute(query, function(results) {
//var frm_domain_area = dom.byId("domain_area");
var testVals = {};
for (var i = 0; i < results.features.length; i++) {
var id = results.features[i].attributes.TreeID;
var desc = results.features[i].attributes.qSpecies;
if (!testVals[id]) {
testVals[id] = true;
var selectElem = domConstruct.create("option",{ label: desc + " (" + id + ")", value: id });
frmTrees.addOption(selectElem);
}
}
});
frmTrees.on("change", function() {
console.debug(frmTrees.get("value"));
});
});
});
看起來如果你點擊jsbin「編輯」環境之外在新窗口中打開該選項,將工作。建議的代碼很好,解決了這個問題。 – disuse
很高興我能幫忙! –