Leaflet: .on( 'popupopen')イベントがマーカーで発生しません

作成日 2014年09月22日  ·  3コメント  ·  ソース: Leaflet/Leaflet

こんにちは、

環境
リーフレット用にいくつかのAngularJSディレクティブを作成しました。 1つはマップ用、1つはレイヤー用、1つはマーカー用、もう1つはポップアップ用です。

ポップアップの角度ディレクティブは、関連付けられるマーカーをリッスンしています。

    .bindPopup(popup)
    .on('dragstart', function () {
        console.log(dragstart");
    })
    .on('dragend', function () {
        console.log("dragend!");
    })
    .on('popupopen', function (popup) {
        console.log("popup opened !", popup);
    });

期待される
すべてのイベントを発生させる必要があります。

結果

popupeventは解雇されませんか? 他は解雇されます。


リーフレット:0,7,2
OS:Windows 7
ブラウザ:Google Chrome 37&Firefox 32

最も参考になるコメント

これを行うと、ここに問題があります

var coordinates = {};
var markerOptions = {};
var marker = L.marker(coordinates), markerOptions );
marker.bindPopup("my content");

bindPopup()メソッドは、StringオブジェクトまたはPopupオブジェクトのいずれかを持つことができます。 この例では、文字列を渡すと、メソッドが適切なポップアップを作成します。 カスタムポップアップ要素を渡す場合は、前にポップアップにマーカーを追加する必要があります。 それ以外の場合、ポップアップにソース要素が含まれることはありません。

最終的な解決策。

var coordinates = {};
var markerOptions = {};
var marker = L.marker(coordinates), markerOptions );

var popupOptions = {};
// you have to append the marker on the creation of the popup
// so that the popup element will have the marker source.
var popup = L.popup(popupOptions, marker );

// and this will work !
marker
    .bindPopup(popup)
    .on('dragstart', function () {
        console.log(dragstart");
    })
    .on('dragend', function () {
        console.log("dragend!");
    })
    .on('popupopen', function (popup) {
        console.log("popup opened !", popup);
    });

全てのコメント3件

いくつかのテストの後、問題はポップアップカスタムライブラリから発生しました。

コメントavezvous fait?

2014-09-22 11:39 GMT + 02:00ピエールバロン[email protected]

クローズ#2907https ://github.com/Leaflet/Leaflet/issues/2907。


このメールに直接返信するか、GitHubで表示してください
https://github.com/Leaflet/Leaflet/issues/2907#event-168346883

これを行うと、ここに問題があります

var coordinates = {};
var markerOptions = {};
var marker = L.marker(coordinates), markerOptions );
marker.bindPopup("my content");

bindPopup()メソッドは、StringオブジェクトまたはPopupオブジェクトのいずれかを持つことができます。 この例では、文字列を渡すと、メソッドが適切なポップアップを作成します。 カスタムポップアップ要素を渡す場合は、前にポップアップにマーカーを追加する必要があります。 それ以外の場合、ポップアップにソース要素が含まれることはありません。

最終的な解決策。

var coordinates = {};
var markerOptions = {};
var marker = L.marker(coordinates), markerOptions );

var popupOptions = {};
// you have to append the marker on the creation of the popup
// so that the popup element will have the marker source.
var popup = L.popup(popupOptions, marker );

// and this will work !
marker
    .bindPopup(popup)
    .on('dragstart', function () {
        console.log(dragstart");
    })
    .on('dragend', function () {
        console.log("dragend!");
    })
    .on('popupopen', function (popup) {
        console.log("popup opened !", popup);
    });
このページは役に立ちましたか?
0 / 5 - 0 評価