יותר

אירועי חלונות קופצים בעלונים באמצעות CartoDB

אירועי חלונות קופצים בעלונים באמצעות CartoDB


כיצד אוכל להשתמש באירועי החלונות הקופצים בעלון באמצעות CartoDB. ראיתי שחלק מהאירועים עובדים כמו 'קליק', 'movestart', אך 'popupclose' ו- 'popupopen' אינם פועלים. המטרה שלי היא לבצע כמה משימות כאשר המשתמש סוגר את הקופץ.

האם יכולה להיות הבעיה שאני משתמש ב- SVG בחלון infowindow?

אני משתמשcartodb.createVisאו שעלי להשתמשcartodb.createLayerבמקום זאת? האם אני לא שם לב למשהו?

cartodb.createVis ('מפה', כתובת אתר). בוצע (פונקציה (vis, שכבות) {שכבות [1] .setInteraction (true); שכבות [1] .on ('featureClick', function (e, latlng, pos, data , layerNumber) {cartodb.log.log (e, latlng, pos, data, layerNumber);}); var map = vis.getNativeMap (); map.on ('קליק', פונקציה (ה) {}); מפה .on ('popupclose', function (e) {var marker = e.popup._source;}); map.on ('popupopen', function (e) {var marker = e.popup._source;});} ); }

"פתרון" אפשרי יכול להיות זה

ביסודו של דבר, ה'טריק 'הוא להיות בעל פונקציה המטפלת בנראות Windows infowindows.

var infowindow; var infowindowOpened = false; .done (פונקציה (vis, שכבות) {var שכבה = שכבות [1]; infowindow = layer.infowindow; infowindowOpened = false; $ ('#מפה'). לחץ (closeInfowindow); layer.on ('featureClick', פונקציה (e, latlng, pos, data, subLayerIndex) {infowindowOpened = true;});}) function closeInfowindow () {setTimeout (function () {if (! infowindowOpened) {infowindow.set ('visibility', false); console .log ('עשה את הדברים שלך כאן');} infowindowOpened = false;}, 250); }

צפו בסרטון: ביטול חסימת חלונות קופצים בדפדפן גוגל כרום