2017-03-03 3 views
2

iframeタグにマップがあり、かなりうまく動作します。フレーム上のクリックがポインタイベントは、私は次のスタイルiframe埋め込みマップをクリックしたときのポインタイベントを有効にする

#map { 
     margin-left:0px; 
     width:107%; 
     pointer-events: none; 
    } 

ポインタを持っている私のCSSファイルで

<iframe id="map" src="map.html"></iframe> 

(マーカーなどをクリックして、ズーム)を再び有効にし、対話するときに私がしたいことすべてがありますイベントは機能し、マップと対話できません。 私が望むのは、地図をクリックしてポインタイベントが「自動」になるときです

私はこのjavascriptのコードを試しましたが、何も起こりません。何か案は?事前

答えて

1

にあなたは「:なしポインタイベント」を持つ要素のイベントをクリックして取得することはできません

<script> 
    $(document).ready(function() { 
     $('#map').css('pointer-events', 'none'); 

     $('#map').click(function() { 
     $(this).css('pointer-events', 'auto'); 
     }); 
    }); 
</script> 

感謝。あなたがすべきことはdivの中にそれを追加することです。例えば

<script> 
     $(document).ready(function() { 
      $('#map').css('pointer-events', 'none'); 
      $('.map-wrapper').click(function() { 
      $(this).find('#map').css('pointer-events', 'auto'); // just $('#map') also fine 
      }); 
      $('.map-wrapper').mouseleave(function() { 
      $(this).find('#map').css('pointer-events', 'none'); // making it not clickable when it's not in focus 
      }); 

     }); 
    </script> 

はこれが役に立てば幸いとして、その後、

<div class="map-wrapper"><iframe id="map"></iframe></div> 

、あなたのスクリプトを呼び出します!

+0

ありがとう、これは非常に役に立ちました!最後に、 '.click'イベントを' .mouseenter'イベントに変更し、その要素のonmousedownイベントに基づいてiframeの外側にある別の要素とやりとりしていた場合、変数を保存しました。 '.mouseenter'関数で、iframeの外側にインタラクションがない場合は、次に実行します。これにより、最初にクリックすることなくiframe内をドラッグできます。 – Booligoosh

+0

うわー、今私はそれについて考えて、ちょうど '.onmousedown'を使っていたかもしれません。愚かな私!遅すぎると、それを変更するのは無意味です。 – Booligoosh

関連する問題