0

リーフレットで生成されたポップアップに、クリックするとファンシーボックスウィンドウでWebページが開くアンカータグを保持しようとしています。これは、fancybox を使用して生成するときに、ポップアップ コンテンツの外で問題なく機能します。

<a class='fancybox.iframe' href='http://en.wikipedia.org/wiki/Space_Needle'>More Info</a>"

しかし、それをチラシのポップアップに入れると、ファンシーボックスが機能せず、新しいウィンドウで開くだけです。

var markerLocation = new L.LatLng(47.6204, -122.3491),
marker = new L.Marker(markerLocation);
map.addLayer(marker);
var popupContent = "<a class='fancy fancybox.iframe' href='http://en.wikipedia.org/wiki/Space_Needle'>More Info</a>";
marker.bindPopup(popupContent);
map.on('click', onMapClick);
var popup = new L.Popup();

私はこれらすべてにかなり慣れていないので、どうすれば機能させることができますか?

4

2 に答える 2

1

v2を使用してください

次のようなファンシーボックスプラグインへのリンクをバインドするコードを表示すると役立ちます。

$(function(){
   $(".fancy").fancybox();
});

リンクを追加した後、このバインディングを呼び出す必要があるかもしれません!

2 番目のオプションは、次のようなリンクの onclick で fancybox プラグインを直接呼び出すことです。

<a href="..." class="fancybox.iframe" onclick="$.fancybox(this);return false;">More info</a>
于 2012-02-22T03:23:58.463 に答える
0

fancyboxをバインドしていますか、$(document).ready()それとも同様のものですか?もしそうなら、あなたのポップアップコンテンツはその時点でDOM内に存在していないようです。クリックイベントをバインドするには、存在する必要があります。

マップが、ポップアップが開いたとき(コンテンツがDOMに追加されたとき)にコールバックをアタッチできるイベントをトリガーする場合は、その時点でファンシーボックスのクリックをバインドできます。onMapClickポップアップコンテンツをDOMに追加する場合は、関数がそのトリックを実行する可能性があるようです。$('whatever').fancybox();もしそうなら、それの最後にあなたを追加します。

最悪のシナリオでは、 within<script>の後にタグを追加してみてください。この場合、fancyboxバインディングを呼び出します。<a>var popupContent

于 2012-02-22T02:47:11.020 に答える