A API ArcGIS para JavaScript está atualmente na versão 3.11. Desde a versão 3.0, todos nós deveríamos ter abandonado em sua maioria o uso de dojo/_base/connect<\/A>. Se você realmente estiver em apuros trabalhando com uma biblioteca mais antiga ou talvez algo no dojox, pelo menos trabalhe com dojo/aspect<\/A>. A essa altura, todos deveriam estar usando dojo/on<\/A> para escutar eventos. Talvez você esteja até usando dojo/topic<\/A>, mas isso é assunto para outro post no blog.<\/P><\/P>Não vou entrar em detalhes sobre como usar dojo/on, mas achei interessante compartilhar algumas maneiras de você estender dojo/on para fazer algumas coisas legais que você pode precisar em situações específicas. Algum tempo atrás, precisei ser capaz de alternar o eventlistener para um evento de clique no meu mapa. Na primeira vez que cliquei no mapa, queria fazer uma seleção e na segunda vez que cliquei no mapa queria executar um método diferente não relacionado à seleção. Existem algumas maneiras que eu poderia ter feito isso usando dojo/on#pausable<\/A> ou algo assim. Mas decidi apenas estender dojo/on para fazer o que eu precisava<\/A>.<\/P><\/P>define([<\/P> 'dojo/on'<\/P>], function(on) {<\/P> 'use strict';<\/P> var _on = on;<\/P> _on.switchable = function(target, type, listener1, listener2) {<\/P> var funcs<\/P> , index<\/P> , currentListener<\/P> , signal;<\/P><\/P> funcs = [listener1, listener2];<\/P> index = 0;<\/P> currentListener = funcs[index];<\/P> signal = _on(target, type, function() {<\/P> return currentListener.apply(this, arguments);<\/P> });<\/P> signal.toggle = function() {<\/P> index = 1 - index;<\/P> currentListener = funcs[index];<\/P> };<\/P> return signal;<\/P> };<\/P> return _on;<\/P>});<\/P><\/PRE><\/P>Então eu estava pensando sobre este tópico recente<\/A> e pensei, Por que não posso criar um eventlistener de uso único?<\/EM><\/P>Tenho certeza que isso pode surgir em certas situações, então montei um exemplo que você pode revisar<\/A>. Este também<\/A> para uma abordagem diferente.<\/P>Você pode clicar no botão Speak!<\/STRONG> e receber uma mensagem de alerta. Clique no botão Toggle<\/STRONG> e clique em Speak! novamente para receber uma mensagem diferente. Clique no botão One time! e uma mensagem de alerta aparecerá em um segundo. O atraso é opcional, então você pode alterar o atraso para 100ms se quiser. Tente clicar nesse mesmo botão novamente e nada acontecerá.<\/P><\/P>Este é apenas um exemplo rápido de coisas que você poderia fazer dependendo da sua situação e achei divertido compartilhar. Você pode ver mais dicas assim no meu blog<\/>.<\/>\/
<\/P>
Não vou entrar em detalhes sobre como usar dojo/on, mas achei interessante compartilhar algumas maneiras de você estender dojo/on para fazer algumas coisas legais que você pode precisar em situações específicas. Algum tempo atrás, precisei ser capaz de alternar o eventlistener para um evento de clique no meu mapa. Na primeira vez que cliquei no mapa, queria fazer uma seleção e na segunda vez que cliquei no mapa queria executar um método diferente não relacionado à seleção. Existem algumas maneiras que eu poderia ter feito isso usando
define([<\/P> 'dojo/on'<\/P>], function(on) {<\/P> 'use strict';<\/P> var _on = on;<\/P> _on.switchable = function(target, type, listener1, listener2) {<\/P> var funcs<\/P> , index<\/P> , currentListener<\/P> , signal;<\/P><\/P> funcs = [listener1, listener2];<\/P> index = 0;<\/P> currentListener = funcs[index];<\/P> signal = _on(target, type, function() {<\/P> return currentListener.apply(this, arguments);<\/P> });<\/P> signal.toggle = function() {<\/P> index = 1 - index;<\/P> currentListener = funcs[index];<\/P> };<\/P> return signal;<\/P> };<\/P> return _on;<\/P>});<\/P><\/PRE><\/P>Então eu estava pensando sobre este
Você pode clicar no botão Speak!<\/STRONG> e receber uma mensagem de alerta. Clique no botão Toggle<\/STRONG> e clique em Speak! novamente para receber uma mensagem diferente. Clique no botão One time! e uma mensagem de alerta aparecerá em um segundo. O atraso é opcional, então você pode alterar o atraso para 100ms se quiser. Tente clicar nesse mesmo botão novamente e nada acontecerá.<\/P><\/P>Este é apenas um exemplo rápido de coisas que você poderia fazer dependendo da sua situação e achei divertido compartilhar. Você pode ver mais dicas assim no meu
Membros conectados podem postar, seguir atualizações e mais. Novo aqui? Registre uma conta gratuita.
Find useful guides, FAQs, and documents to help you navigate and make the most of Esri Community.