このプロジェクトの詳細については、これが私の提案するものです。仮定すると:
- 各イベントは、それへのマップを持っている
iframe
に使用するURLを持つことになり、ダイアログ
- ボタンやリンクを発売するボタンやリンクが存在する
実施例:https://jsfiddle.net/Twisty/9dk8jrqc/
HTML
<div id="eventContent" title="Event">
<div id="map"></div>
</div>
<button id="show">
Show Event
</button>
jQueryの
var event = {
"map": "https://www.google.com/maps/embed?pb=!1m14!1m8!1m3!1d9927.782117587185!2d-0.1578822!3d51.5325589!3m2!1i1024!2i768!4f13.1!3m3!1m2!1s0x0%3A0xc2ee490704162539!2sThe+Hub!5e0!3m2!1sen!2suk!4v1452460618657"
};
$(function() {
function showMap(url) {
$('#eventContent div#map').html("");
var frame = $("<iframe>", {
width: 600,
height: 450,
frameborder: 0,
allowfullscreen: true
}).css("border", 0);
frame.attr("src", url);
frame.appendTo($("#eventContent div#map"));
$('#eventContent').dialog("open");
}
$('#eventContent').dialog({
autoOpen: false,
modal: true,
width: 640,
height: 480
});
$('#show').click(function() {
showMap(event.map)
});
});
ダイナミックなソリューションを維持するために、私はiframe
に使用するソースを収集機能を示唆しています。前のアクションからより古いiframe
がある場合、それはクリアされます。次に、新しいソースを使用してiframe
を動的に作成し、#map
に追加します。これが終わったら、私はダイアログでopenを呼び出します。
showMap()
をさまざまなクリックイベントで使用し、iframe
に表示する任意のURLを指定できます。
URLを保存するか、リンクから収穫することをおすすめします。あなたは、この情報を収集し、そのようにそれを使用することができ
<a class="mapLink" href="https://www.google.com/maps/embed?pb=!1m14!1m8!1m3!1d9927.782117587185!2d-0.1578822!3d51.5325589!3m2!1i1024!2i768!4f13.1!3m3!1m2!1s0x0%3A0xc2ee490704162539!2sThe+Hub!5e0!3m2!1sen!2suk!4v1452460618657">Show Map</a>
:
$(".mapLink").click(function(e){
e.preventDefault();
showMap($(this).attr("href"));
});
これはまた、ボタンに記憶することができるようdata-map-url
を使用して例えば、場合に各イベントのようなマップへのリンクを持っていました属性も。
完全なソリューションを提供するための詳細情報が必要です。私がこれを理解していれば、イメージマップがあり、クリックすると、クリックイベントに関連するデータからソースが設定されているiframeを含むダイアログが表示されます。あれは正しいですか? – Twisty