La API de ArcGIS para JavaScript está actualmente en la versión 3.11. Desde la versión 3.0, todos deberíamos haber abandonado en su mayoría el uso de dojo/_base/connect<\/A>. Si realmente estás en un apuro trabajando con una biblioteca antigua o tal vez algo en dojox, al menos trabaja con dojo/aspect<\/A>. A estas alturas, todos deberían estar usando dojo/on<\/A> para escuchar eventos. Tal vez incluso estés usando dojo/topic<\/A>, pero eso es tema para otro post en el blog.<\/P><\/P>No voy a entrar en detalles sobre cómo usar dojo/on, pero pensé que sería interesante compartir un par de formas en que puedes extender dojo/on para hacer cosas geniales que podrías necesitar en situaciones particulares. Hace algún tiempo, necesitaba poder alternar el eventlistener para un evento click en mi mapa. La primera vez que hice clic en el mapa, quería hacer una selección y la segunda vez que hice clic quería ejecutar un método diferente no relacionado con la selección. Hay un par de maneras en que podría haber hecho esto usando dojo/on#pausable<\/A> o algo así. Pero decidí simplemente extender dojo/on para hacer lo que necesitaba<\/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><\/>\nLuego estaba pensando en este hilo reciente<\/>A> y pensé, ¿Por qué no puedo hacer un eventlistener de un solo uso?<\/>EM><\/>\nEstoy seguro de que esto podría surgir en ciertas situaciones, así que preparé un ejemplo que puedes revisar. Este también para un enfoque diferente.<\/>\nPuedes hacer clic en el botón ¡Speak!<\/>STRONG> y recibir un mensaje de alerta. Haz clic en el botón Toggle<\/>STRONG> y luego haz clic nuevamente en ¡Speak!<\/>STRONG> para obtener un mensaje diferente. Haz clic en el botón ¡One time!<\/>STRONG> y aparecerá un mensaje de alerta en un segundo. El retraso es opcional, así que podrías cambiar el retraso a 100ms si quieres. Intenta hacer clic nuevamente ese mismo botón y no pasará nada.<\/>\n<\/>Este es solo un ejemplo rápido de cosas que podrías hacer dependiendo de tu situación y pensé que sería divertido compartirlo. Puedes ver más detalles como este en mi blog.<\/>\n<\/>Adelante y programa mis amigos.<\/>BODY>
<\/P>
No voy a entrar en detalles sobre cómo usar dojo/on, pero pensé que sería interesante compartir un par de formas en que puedes extender dojo/on para hacer cosas geniales que podrías necesitar en situaciones particulares. Hace algún tiempo, necesitaba poder alternar el eventlistener para un evento click en mi mapa. La primera vez que hice clic en el mapa, quería hacer una selección y la segunda vez que hice clic quería ejecutar un método diferente no relacionado con la selección. Hay un par de maneras en que podría haber hecho esto 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><\/>\nLuego estaba pensando en este
Los miembros registrados pueden publicar, seguir actualizaciones y más. ¿Nuevo aquí? Regístrate gratis.
Find useful guides, FAQs, and documents to help you navigate and make the most of Esri Community.