我们的想法是将列表中的所有Foursquare位置加载到Google地图中,并允许其他人通过单击“保存到foursquare按钮”将它们添加到自己的列表中。但是当我尝试在Google地图标记中使用它们时,我遇到了一些问题。
您在Foursquare(https://foursquare.com/business/brands/offerings/savetofoursquare)中使用的脚本似乎没有找到“保存到foursquare按钮”链接,当它放在Google地图标记内时,它没有设置样式。当您单击链接时,它不会在灯箱中打开,而是在新页面中打开。我可以用一些CSS设置按钮的样式。但灯箱是一个不同的故事,我可以打开一个,但你怎么知道何时关闭它?
如果我在没有Google地图的单个页面上测试“保存到foursquare按钮”,则保存位置后灯箱会自动关闭。但我不认为有一种方法可以检测何时再次关闭它,如果你从标记打开一个
但更好的当然是如果脚本首先检测到“保存到foursquare按钮”。有人试图将“保存到foursquare按钮”用于Google地图标记吗?欢迎所有提示:)
你可以在这里看到我的意思http://tijmensmit.com/foursquare/按钮没有样式,也没有灯箱。
答案 0 :(得分:0)
我遇到了同样的问题。
在https://foursquare.com/business/brands/offerings/savetofoursquare
上添加Foursquare SDK了解Foursquare的widget.js,了解它在DOM准备工作中的真正作用。 这是Foursquare实际做的事情:
go: function (a) {
a = g.findMarkers(a);
e.each(a, function (a) {
var c = g.markerConfig(a),
b = g.instance(c);
"false" == c.replaceButton ? b.attach(a) : b.replace(a)
})
},
编写自己的函数:
// My function to replace "new" Foursquare save buttons
// @param e : <a class=fourSq-widget> element
function myFoursquareReplaceSave(e) {
if (typeof e != "undefined") {
var f = window.fourSq.widget.Factory;
var c = f.markerConfig(e);
var b = f.instance(c);
"false" == c.replaceButton ? b.attach(e) : b.replace(e);
}
}
每次创建新的GMap Infobox时,最后调用该函数。 类似的东西:
// t is the Infobox (a google.maps.OverlayView),
// div is the <div> element (the content)
// (using jquery)
myFoursquareReplaceSave($(t.div).find('.fourSq-widget').get(0));
我还没有测试过infowindows的domready监听器: https://stackoverflow.com/a/5505179/229088