De ArcGIS API voor JavaScript is momenteel versie 3.11. Sinds versie 3.0 zouden we allemaal grotendeels moeten zijn gestopt met het gebruik van dojo/_base/connect<\/A>. Als je echt in een lastige situatie zit met een oudere bibliotheek of misschien iets in dojox, werk dan tenminste met dojo/aspect<\/A>. Tegenwoordig zou iedereen dojo/on<\/A> moeten gebruiken om naar events te luisteren. Misschien gebruik je zelfs dojo/topic<\/A>, maar dat is weer een heel ander blogbericht.<\/P><\/P>Ik ga niet in detail uitleggen hoe je dojo/on gebruikt, maar ik vond het leuk om een paar manieren te delen waarop je dojo/on kunt uitbreiden om wat coole dingen te doen die je misschien nodig hebt voor bepaalde situaties. Enige tijd geleden had ik de behoefte om de eventlistener voor een klik-event op mijn kaart te kunnen schakelen. De eerste keer dat ik op de kaart klikte, wilde ik een selectie doen en de tweede keer dat ik op de kaart klikte wilde ik een andere methode uitvoeren die niets met de selectie te maken had. Er zijn een paar manieren waarop ik dit had kunnen aanpakken door dojo/on#pausable<\/A> of iets dergelijks te gebruiken. Maar ik besloot gewoon om dojo/on uit te breiden om te doen wat ik nodig had<\/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>Toen dacht ik aan deze recente thread<\/A> en dacht: Waarom kan ik geen single use eventlistener maken? <\EM><\P>Ik weet zeker dat dit in bepaalde situaties van pas kan komen, dus heb ik een voorbeeld gemaakt dat je kunt bekijken<\A>. Deze ook voor een andere aanpak.<\A><\P>Je kunt op de Speak!<\STRONG> knop klikken en een alertbericht krijgen. Klik op de Toggle<\STRONG> knop en klik opnieuw op Speak!<\STRONG> om een ander bericht te krijgen. Klik op de One time!<\STRONG> knop en er verschijnt na een seconde een alertbericht. De vertraging is optioneel, dus je kunt de vertraging veranderen naar 100ms als je wilt. Probeer diezelfde knop nogmaals te klikken en er gebeurt niets.<\P><\P>Dit is slechts een snel voorbeeld van dingen die je zou kunnen doen afhankelijk van je situatie en ik vond het leuk om het te delen. Je kunt meer van dit soort tips zien op mijn <A href="http:\/\/odoe.net\/blog\/\
<\/P>
Ik ga niet in detail uitleggen hoe je dojo/on gebruikt, maar ik vond het leuk om een paar manieren te delen waarop je dojo/on kunt uitbreiden om wat coole dingen te doen die je misschien nodig hebt voor bepaalde situaties. Enige tijd geleden had ik de behoefte om de eventlistener voor een klik-event op mijn kaart te kunnen schakelen. De eerste keer dat ik op de kaart klikte, wilde ik een selectie doen en de tweede keer dat ik op de kaart klikte wilde ik een andere methode uitvoeren die niets met de selectie te maken had. Er zijn een paar manieren waarop ik dit had kunnen aanpakken door
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>Toen dacht ik aan deze
Je kunt op de Speak!<\STRONG> knop klikken en een alertbericht krijgen. Klik op de Toggle<\STRONG> knop en klik opnieuw op Speak!<\STRONG> om een ander bericht te krijgen. Klik op de One time!<\STRONG> knop en er verschijnt na een seconde een alertbericht. De vertraging is optioneel, dus je kunt de vertraging veranderen naar 100ms als je wilt. Probeer diezelfde knop nogmaals te klikken en er gebeurt niets.<\P><\P>Dit is slechts een snel voorbeeld van dingen die je zou kunnen doen afhankelijk van je situatie en ik vond het leuk om het te delen. Je kunt meer van dit soort tips zien op mijn <A href="http:\/\/odoe.net\/blog\/\
Aangemelde leden kunnen berichten plaatsen, updates volgen en meer. Nieuw hier? Registreer een gratis account.
Find useful guides, FAQs, and documents to help you navigate and make the most of Esri Community.