Die ArcGIS API für JavaScript befindet sich derzeit in Version 3.11. Seit Version 3.0 sollten wir alle größtenteils die Verwendung von dojo/_base/connect<\/A> aufgegeben haben. Wenn Sie wirklich in der Klemme stecken und mit einer älteren Bibliothek oder vielleicht etwas in dojox arbeiten, verwenden Sie zumindest dojo/aspect<\/A>. Mittlerweile sollte jeder dojo/on<\/A> verwenden, um auf Ereignisse zu hören. Vielleicht verwenden Sie sogar dojo/topic<\/A>, aber das ist ein ganz anderer Blogbeitrag.<\/P><\/P>Ich werde nicht im Detail darauf eingehen, wie man dojo/on verwendet, aber ich dachte, es wäre nett, ein paar Möglichkeiten zu teilen, wie man dojo/on erweitern kann, um einige coole Sachen zu machen, die man für bestimmte Situationen brauchen könnte. Vor einiger Zeit musste ich in der Lage sein, den Eventlistener für ein Klick-Ereignis auf meiner Karte umzuschalten. Beim ersten Klick auf die Karte wollte ich eine Auswahl durchführen und beim zweiten Klick auf die Karte wollte ich eine andere Methode ausführen, die nichts mit der Auswahl zu tun hatte. Es gibt ein paar Möglichkeiten, wie ich das hätte machen können, z.B. mit dojo/on#pausable<\/A> oder so etwas. Aber ich habe mich entschieden, einfach dojo/on zu erweitern, um das zu tun, was ich brauchte<\/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>Dann dachte ich an diesen aktuellen Thread<\/_A> und fragte mich: Warum kann ich keinen einmaligen Eventlistener machen?<\/_EM><\/_P><\/_P><\/_P>Ich bin sicher, dass dies in bestimmten Situationen vorkommen kann, also habe ich ein Beispiel zusammengestellt, das Sie überprüfen können<\/_A>. Dieses hier auch<\/_A> für einen anderen Ansatz.<\/_P><\/_P>Sie können auf die Sprechen!<\/_STRONG>-Taste klicken und eine Warnmeldung erhalten. Klicken Sie auf die Umschalten<\/_STRONG>-Taste und klicken Sie erneut auf Sprechen!<\/_STRONG>, um eine andere Nachricht zu erhalten. Klicken Sie auf die Einmalig!<\/_STRONG>-Taste und nach einer Sekunde erscheint eine Warnmeldung. Die Verzögerung ist optional, Sie könnten die Verzögerung auf 100 ms ändern, wenn Sie möchten. Versuchen Sie erneut auf dieselbe Taste zu klicken und es passiert nichts.<\/_P><\/_P><\/_P>Dies ist nur ein schnelles Beispiel für Dinge, die Sie je nach Situation tun könnten und ich dachte, es wäre lustig zu teilen. Weitere solche Tipps finden Sie auf meinem <A href="http:\/\/odoe.net\/blog\/
<\/P>
Ich werde nicht im Detail darauf eingehen, wie man dojo/on verwendet, aber ich dachte, es wäre nett, ein paar Möglichkeiten zu teilen, wie man dojo/on erweitern kann, um einige coole Sachen zu machen, die man für bestimmte Situationen brauchen könnte. Vor einiger Zeit musste ich in der Lage sein, den Eventlistener für ein Klick-Ereignis auf meiner Karte umzuschalten. Beim ersten Klick auf die Karte wollte ich eine Auswahl durchführen und beim zweiten Klick auf die Karte wollte ich eine andere Methode ausführen, die nichts mit der Auswahl zu tun hatte. Es gibt ein paar Möglichkeiten, wie ich das hätte machen können, z.B. mit
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>Dann dachte ich an diesen
Angemeldete Mitglieder können Beiträge verfassen, Updates folgen und mehr. Neu hier? Registrieren Sie ein kostenloses Konto.
Find useful guides, FAQs, and documents to help you navigate and make the most of Esri Community.