ArcGIS API pro JavaScript je momentálně ve verzi 3.11. Od verze 3.0 bychom měli většinou přestat používat dojo\/_base\/connect<\/A>. Pokud jste opravdu v nouzi a pracujete se starší knihovnou nebo možná něčím v dojox, alespoň používejte dojo\/aspect<\/A>. Už by všichni měli používat dojo\/on<\/A> k naslouchání událostem. Možná dokonce používáte dojo\/topic<\/A>, ale to je úplně jiný blogový příspěvek.<\/P><\/P>Nebudu podrobně rozebírat, jak používat dojo/on, ale myslel jsem, že by bylo zajímavé sdílet pár způsobů, jak můžete rozšířit dojo/on, aby dělalo nějaké skvělé věci, které byste mohli potřebovat pro konkrétní situace. Před časem jsem potřeboval mít možnost přepínat eventlistener pro kliknutí na moji mapu. Při prvním kliknutí na mapu jsem chtěl provést výběr a při druhém kliknutí na mapu jsem chtěl spustit jinou metodu nesouvisející s výběrem. Existuje několik způsobů, jak jsem to mohl udělat pomocí dojo/on#pausable<\/A> nebo něčeho podobného. Ale rozhodl jsem se prostě rozšířit dojo/on tak, aby dělalo to, co jsem potřeboval<\/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>Pak jsem přemýšlel o tomto nedávném vláknu<\/A> a řekl si, Proč nemohu vytvořit jednorázový eventlistener?<\/EM><\/P>Jsem si jistý, že se to může hodit v určitých situacích, takže jsem sestavil ukázkový příklad k nahlédnutí<\/A>. Tento také<\/A> pro jiný přístup.<\/P>Můžete kliknout na tlačítko Speak!<\/STRONG> a zobrazí se upozornění. Klikněte na tlačítko Toggle<\/STRONG> a znovu klikněte na Speak!<\/STRONG>, abyste dostali jinou zprávu. Klikněte na tlačítko One time!<\/STRONG> a za sekundu se objeví upozornění. Zpoždění je volitelné, takže můžete změnit zpoždění na 100 ms, pokud chcete. Zkuste znovu kliknout na stejné tlačítko a nic se nestane.<\/P><\/P>Toto je jen rychlý příklad věcí, které můžete dělat podle vaší situace a myslel jsem si, že by bylo zábavné to sdílet. Více takových drobností najdete na mém blogu<\/>.<\/>\/<\/>\/<\/>\/<\/>\/<\/>\/<\/>\/<\/>\/<\/>\/<\/>\/<\/>\/<\/>\/<\/>\/<\/>\/<\/>\/<\/>\/<\/>\/<\/>\/<\/>
<\/P>
Nebudu podrobně rozebírat, jak používat dojo/on, ale myslel jsem, že by bylo zajímavé sdílet pár způsobů, jak můžete rozšířit dojo/on, aby dělalo nějaké skvělé věci, které byste mohli potřebovat pro konkrétní situace. Před časem jsem potřeboval mít možnost přepínat eventlistener pro kliknutí na moji mapu. Při prvním kliknutí na mapu jsem chtěl provést výběr a při druhém kliknutí na mapu jsem chtěl spustit jinou metodu nesouvisející s výběrem. Existuje několik způsobů, jak jsem to mohl udělat pomocí
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>Pak jsem přemýšlel o tomto
Můžete kliknout na tlačítko Speak!<\/STRONG> a zobrazí se upozornění. Klikněte na tlačítko Toggle<\/STRONG> a znovu klikněte na Speak!<\/STRONG>, abyste dostali jinou zprávu. Klikněte na tlačítko One time!<\/STRONG> a za sekundu se objeví upozornění. Zpoždění je volitelné, takže můžete změnit zpoždění na 100 ms, pokud chcete. Zkuste znovu kliknout na stejné tlačítko a nic se nestane.<\/P><\/P>Toto je jen rychlý příklad věcí, které můžete dělat podle vaší situace a myslel jsem si, že by bylo zábavné to sdílet. Více takových drobností najdete na mém
Přihlášení členové mohou přispívat, sledovat aktualizace a další. Nový zde? Zaregistrujte si bezplatný účet.
Find useful guides, FAQs, and documents to help you navigate and make the most of Esri Community.