<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: Connect/disconnect event listener based on display of HTML element in ArcGIS JavaScript Maps SDK Questions</title>
    <link>https://community.esri.com/t5/arcgis-javascript-maps-sdk-questions/connect-disconnect-event-listener-based-on-display/m-p/589832#M55127</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Robert,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks for the reply.&amp;nbsp; Still no luck with the code you supplied.&amp;nbsp; The listener gets hooked up but its not disconnecting when the element's display is flipped to "none".&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Here's what you gave me along with the function I am calling with the map click:&lt;/P&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;function toggleGeovista() { 
&amp;nbsp;&amp;nbsp; var clickListener;
&amp;nbsp;&amp;nbsp; var geovistaElement = document.getElementById('geovistaWidget');
&amp;nbsp; if (geovistaElement.style.display == 'block') { 
&amp;nbsp; geovistaElement.style.display = 'none';
&amp;nbsp; if(clickListener){
&amp;nbsp;&amp;nbsp; clickListener.remove();
&amp;nbsp; }
&amp;nbsp; } else { 
&amp;nbsp; geovistaElement.style.display = 'block';
&amp;nbsp; clickListener = map.on('click', openGeovistaWidget);
&amp;nbsp; }
&amp;nbsp; }

&amp;nbsp; function openGeovistaWidget(evt) {
&amp;nbsp; alert("GVM Function starting");
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var point = evt.mapPoint;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var outSR = new SpatialReference(4326);


&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; gvsc.project([point], outSR, function(projectedPoints) {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; pt = projectedPoints[0];
&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; window.open("&lt;/SPAN&gt;&lt;A class="jive-link-external-small" href="http://fiscalims.summitoh.net/GVViewer/ViewerAX.htm?res=2&amp;amp;lat=" rel="nofollow noopener noreferrer" target="_blank"&gt;http://fiscalims.summitoh.net/GVViewer/ViewerAX.htm?res=2&amp;amp;lat=&lt;/A&gt;&lt;SPAN&gt;" + pt.y.toFixed(5) + "&amp;amp;lon=" + pt.x.toFixed(5));&lt;/SPAN&gt;


&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; });

&amp;nbsp; }&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Ill try to get a public link set up.&amp;nbsp; Maybe seeing the app will help.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks for the help.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Ryan&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Sun, 12 Dec 2021 01:20:26 GMT</pubDate>
    <dc:creator>RyanSellman</dc:creator>
    <dc:date>2021-12-12T01:20:26Z</dc:date>
    <item>
      <title>Connect/disconnect event listener based on display of HTML element</title>
      <link>https://community.esri.com/t5/arcgis-javascript-maps-sdk-questions/connect-disconnect-event-listener-based-on-display/m-p/589830#M55125</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;In my application, I would like for an event listener to be hooked up upon the display of an HTML element.&amp;nbsp; Right now, I have a button that basically toggles the display of an element.&amp;nbsp; I would like to hook up a click event on the map, only when that element is showing. So, when the user clicks a button after the application loads, the element's display is set to "block" and the handler is wired up.&amp;nbsp; Then, if the user hits the button again, the display is set back to, "none" and the handler is disconnected.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I have to believe there is a better way to handle this, so I am open to changing the logic all together.&amp;nbsp; Regardless, here is what I have so far:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;function toggleGeovista() {

&amp;nbsp; var geovistaElement = document.getElementById('geovistaWidget');


&amp;nbsp; if (geovistaElement.style.display == 'block') {

&amp;nbsp; geovistaElement.style.display = 'none';

&amp;nbsp; } else {

&amp;nbsp; geovistaElement.style.display = 'block';
&amp;nbsp; }


&amp;nbsp; //hook up map click listener based on the display of geovistaElement 
&amp;nbsp; var geovistaDisplay = geovistaElement.style.display;

&amp;nbsp; if (geovistaDisplay == 'block') {

&amp;nbsp; alert("Geovista Widget is showing");

&amp;nbsp; //var eventHandler = map.on("click", openGeovistaWidget);
&amp;nbsp; var eventHandler = connect.connect(map, "onClick", openGeovistaWidget);

&amp;nbsp; } else if (geovistaDisplay == 'none') {

&amp;nbsp; alert("Geovista Widget is NOT showing");

&amp;nbsp; //eventHandler.remove();
&amp;nbsp; connect.disconnect(eventHandler);

&amp;nbsp; }
&amp;nbsp; }&lt;/PRE&gt;&lt;P&gt;I have tried using the "on" method for handling events as well as the dojo/_base/connect module.&amp;nbsp; In both approaches, I can get the listener to connect but cannot disconnect it.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Any help is appreciated!&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Ryan&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sun, 12 Dec 2021 01:20:20 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcgis-javascript-maps-sdk-questions/connect-disconnect-event-listener-based-on-display/m-p/589830#M55125</guid>
      <dc:creator>RyanSellman</dc:creator>
      <dc:date>2021-12-12T01:20:20Z</dc:date>
    </item>
    <item>
      <title>Re: Connect/disconnect event listener based on display of HTML element</title>
      <link>https://community.esri.com/t5/arcgis-javascript-maps-sdk-questions/connect-disconnect-event-listener-based-on-display/m-p/589831#M55126</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Ryan,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; This is how I would do it:&lt;/P&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;function toggleGeovista() { 
&amp;nbsp; var clickListener;
&amp;nbsp; var geovistaElement = document.getElementById('geovistaWidget');
&amp;nbsp; if (geovistaElement.style.display == 'block') { 
&amp;nbsp;&amp;nbsp;&amp;nbsp; geovistaElement.style.display = 'none';
&amp;nbsp;&amp;nbsp;&amp;nbsp; if(clickListener){
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; clickListener.remove();
&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp; } else { 
&amp;nbsp;&amp;nbsp;&amp;nbsp; geovistaElement.style.display = 'block';
&amp;nbsp;&amp;nbsp;&amp;nbsp; clickListener = map.on('click', openGeovistaWidget);
&amp;nbsp; }
}&lt;/PRE&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sun, 12 Dec 2021 01:20:23 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcgis-javascript-maps-sdk-questions/connect-disconnect-event-listener-based-on-display/m-p/589831#M55126</guid>
      <dc:creator>RobertScheitlin__GISP</dc:creator>
      <dc:date>2021-12-12T01:20:23Z</dc:date>
    </item>
    <item>
      <title>Re: Connect/disconnect event listener based on display of HTML element</title>
      <link>https://community.esri.com/t5/arcgis-javascript-maps-sdk-questions/connect-disconnect-event-listener-based-on-display/m-p/589832#M55127</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Robert,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks for the reply.&amp;nbsp; Still no luck with the code you supplied.&amp;nbsp; The listener gets hooked up but its not disconnecting when the element's display is flipped to "none".&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Here's what you gave me along with the function I am calling with the map click:&lt;/P&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;function toggleGeovista() { 
&amp;nbsp;&amp;nbsp; var clickListener;
&amp;nbsp;&amp;nbsp; var geovistaElement = document.getElementById('geovistaWidget');
&amp;nbsp; if (geovistaElement.style.display == 'block') { 
&amp;nbsp; geovistaElement.style.display = 'none';
&amp;nbsp; if(clickListener){
&amp;nbsp;&amp;nbsp; clickListener.remove();
&amp;nbsp; }
&amp;nbsp; } else { 
&amp;nbsp; geovistaElement.style.display = 'block';
&amp;nbsp; clickListener = map.on('click', openGeovistaWidget);
&amp;nbsp; }
&amp;nbsp; }

&amp;nbsp; function openGeovistaWidget(evt) {
&amp;nbsp; alert("GVM Function starting");
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var point = evt.mapPoint;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var outSR = new SpatialReference(4326);


&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; gvsc.project([point], outSR, function(projectedPoints) {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; pt = projectedPoints[0];
&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; window.open("&lt;/SPAN&gt;&lt;A class="jive-link-external-small" href="http://fiscalims.summitoh.net/GVViewer/ViewerAX.htm?res=2&amp;amp;lat=" rel="nofollow noopener noreferrer" target="_blank"&gt;http://fiscalims.summitoh.net/GVViewer/ViewerAX.htm?res=2&amp;amp;lat=&lt;/A&gt;&lt;SPAN&gt;" + pt.y.toFixed(5) + "&amp;amp;lon=" + pt.x.toFixed(5));&lt;/SPAN&gt;


&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; });

&amp;nbsp; }&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Ill try to get a public link set up.&amp;nbsp; Maybe seeing the app will help.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks for the help.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Ryan&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sun, 12 Dec 2021 01:20:26 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcgis-javascript-maps-sdk-questions/connect-disconnect-event-listener-based-on-display/m-p/589832#M55127</guid>
      <dc:creator>RyanSellman</dc:creator>
      <dc:date>2021-12-12T01:20:26Z</dc:date>
    </item>
    <item>
      <title>Re: Connect/disconnect event listener based on display of HTML element</title>
      <link>https://community.esri.com/t5/arcgis-javascript-maps-sdk-questions/connect-disconnect-event-listener-based-on-display/m-p/589833#M55128</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;the variable clickListener has to be outside the method. as the reference will be gone when the on click event is raised.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 19 May 2015 15:24:48 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcgis-javascript-maps-sdk-questions/connect-disconnect-event-listener-based-on-display/m-p/589833#M55128</guid>
      <dc:creator>thejuskambi</dc:creator>
      <dc:date>2015-05-19T15:24:48Z</dc:date>
    </item>
    <item>
      <title>Re: Connect/disconnect event listener based on display of HTML element</title>
      <link>https://community.esri.com/t5/arcgis-javascript-maps-sdk-questions/connect-disconnect-event-listener-based-on-display/m-p/589834#M55129</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Thanks for the reply!&amp;nbsp; Moving the clickListener variable outside of the function seems to have fixed it.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thank you both for your help!&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 19 May 2015 15:39:35 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcgis-javascript-maps-sdk-questions/connect-disconnect-event-listener-based-on-display/m-p/589834#M55129</guid>
      <dc:creator>RyanSellman</dc:creator>
      <dc:date>2015-05-19T15:39:35Z</dc:date>
    </item>
  </channel>
</rss>

