2017-09-19 8 views
0

Openlayers 3のマップでJQueryでクリックイベントを削除する必要があります。Openlayer 3のマップからJQueryのクリックイベントを削除する方法

map.on機能は、ラジオボタンの変更内で、クリックすでに試した

map.on('click', function (evt) { 

     var url = temperatura.getSource().getGetFeatureInfoUrl(
     evt.coordinate, viewResolution, viewProjection, 
     { 
      'INFO_FORMAT': 'application/json', 
     }); 
     if (url) { 
      $.getJSON(url, function(result){ 
      var Umidade_Rel = result.features[0]['properties']['Temperatura_2m']; 
      $('#information').removeClass('hidden'); 
      $('#information').css('background-color', '#eaca6a'); 
      $('#information p , #information h3').css('color', '#68a06f'); 
      $('#information').html('<h3>Temperatura</h3><p>' + Umidade_Rel.toFixed(2) + '</p>'); 
      }); 
     } 
     }); 

の複数のインスタンスを作成して終わる:

map.off('click', myFunction); 

map.removeEvent('click', myFunction); 

map.getViewport().removeEventListener('click', myFunction); 
+0

。 ol3 apiを使用してイベントを登録してから、jquery APIを使用してイベントを削除します。論理的ではありません。 ol3 APIを使用してイベントを登録解除するには、map.un( 'click' ..... ' – pavlos

+0

ありがとうございます@pavlosありがとうございます 状況が非常に緊急であったため、別の方法で状況を回避しなければなりませんでした。 私は答えとして含めるよ! 挨拶! –

答えて

0

私は事態を回避するために管理しました他の方法で。私の場合は

クリックイベントは、ユーザーがそうでもマップから層を除去、層を変更するたびに作成された、アクティブなクリックイベントは、ケースとして

(削除レイヤの情報を表示する)残りました私は、アクティブなレイヤーをチェックし、レイヤーがマップ上に配置されている場合にのみ情報を表示することによって、この状況を回避することができました。あなたはjqueryのを使用して、それを行うにはしたくないのはなぜ

if (url && verifyLayer('Mylayer') == 'true'){ 
- code - 
} 

function verificaLayer(name){ 
    var valid = ''; 

    map.getLayers().forEach(function(layer){ 
    var layername = (layer['values ​​_']['name']); 
    if(name == layername){ 
     valid = 'true'; 
    } 
    }); 
return valid; 

}

関連する問題