javascript - Dojo 无法通过 ID 获取元素

标签 javascript html dojo

我试图使用 Dojo 设置按钮事件监听器。一旦按钮单击,它将执行地理编码功能。代码如下:

require (["esri/map", "esri/dijit/Scalebar", "esri/layers/FeatureLayer", "esri/dijit/Legend","dojo/_base/array","dojo/parser","dijit/layout/BorderContainer","dijit/layout/ContentPane","dijit/layout/AccordionContainer","esri/InfoTemplate","dojo/dom-construct",
    "esri/tasks/locator","esri/graphic","esri/symbols/SimpleMarkerSymbol","esri/symbols/Font","esri/symbols/TextSymbol","esri/Color","dojo/number","dojo/dom","dijit/registry",
    "dijit/form/Button","dijit/form/Textarea", "dojo/domReady!"],

function(Map, Scalebar, FeatureLayer,Legend, arrayUtils, parser, BorderContainer, ContentPane, AccordionContainer, InfoTemplate, domConstruct,
        Locator,Graphic,SimpleMarkerSymbol,Font,TextSymbol,Font,TextSymbol,Color,number,dom,registry, Button, Textarea){

还有我的按钮事件监听器:

 registry.byId("locate").on("click", locate);

但是,我收到此错误消息:

Uncaught TypeError: Object function (){var c=arguments,d=c,f=c[0],g,e;e=a.length;var h;if(!(this instanceof c.callee))return v(c);
if(b&&(f&&f.preamble||this.preamble)){h=Array(a.length);h[0]=c;for(g=0;;){if(f=c[0])(f=f.preamble)&&(c=f.apply(this,c)||c);f=a[g].prototype;(f=f.hasOwnProperty("preamble")&&f.preamble)&&(c=f.apply(this,c)||c);if(++g==e)break;h[g]=c}}for(g=e-1;0<=g;--g)f=a[g],(f=(e=f._meta)?e.ctor:f)&&f.apply(this,h?h[g]:c);(f=this.postscript)&&f.apply(this,d)} has no method 'byId'

我的JsFiddle:enter link description here

有什么指南吗?提前致谢。

最佳答案

这是一个jsfiddle有效,您遇到的问题是错误地添加了 Font, TextSymbol 回调两次,这将与注册表回调发生冲突

require(["esri/map", "esri/dijit/Scalebar", "esri/layers/FeatureLayer", "esri/dijit/Legend", "dojo/_base/array", "dojo/parser", "dijit/layout/BorderContainer", "dijit/layout/ContentPane", "dijit/layout/AccordionContainer", "esri/InfoTemplate", "dojo/dom-construct",
    "esri/tasks/locator", "esri/graphic", "esri/symbols/SimpleMarkerSymbol", "esri/symbols/Font", "esri/symbols/TextSymbol", "esri/Color", "dojo/number", "dojo/dom", "dijit/registry",
    "dijit/form/Button", "dijit/form/Textarea", "dojo/domReady!"],

function (Map, Scalebar, FeatureLayer, Legend, arrayUtils, parser, BorderContainer, ContentPane, AccordionContainer, InfoTemplate, domConstruct,
Locator, Graphic, SimpleMarkerSymbol, Font, TextSymbol, Font, TextSymbol, Color, number, dom, registry) {

关于javascript - Dojo 无法通过 ID 获取元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27521286/

相关文章:

javascript - 如何将数组字符串转换为数组?

javascript - 无滚动的 HTML 单页

html - 网页在 Firefox 中看起来不错,但其他所有浏览器都不喜欢它

css - 一般替换 dijit ContentPane 的加载消息

javascript - 使用 web dojo 并分配本地包

javascript - 如何从 javascript/jquery 中的多个复选框中获取附加值?

javascript - jquery 计数函数。 if 语句

javascript - 突出显示文本区域中的输入

javascript - 在javascript中模拟鼠标点击时如何设置目标属性?

javascript - 如何使用 Material UI 默认组件