jQuery移动链接转换为传单地图

时间:2012-08-22 18:47:54

标签: jquery-mobile leaflet

我有一个使用jQuery Mobile的网站,其中一个页面使用Cloudmade的Leaflet显示地图。

This page loads up and shows a map with a marker,这一切都很好但是......

I have another page with a link to the map page,然后加载OK,除了它似乎试图从错误的地方获取标记图像文件。

有人可以告诉我更多关于该页面出错的信息吗?

这就是我所知道的。 jQuery Mobile会重写普通的A HREF链接来代替执行ajax动态加载目标页面。这对我来说是神秘而深不可测的,但是像我这样的开发人员大多不需要关心它吧?但是在这种情况下,关于传单调用代码的某些内容并没有在修复中幸存下来。

Failed to load resource: the server responded with a status of 404 (Not Found)
http://placr.mobi/dist/images/marker.png

...是safari报告的错误。确实这条道路不正确。我设置了传单,其中'dist'目录的内容放在一个名为'leaflet'的目录中。应该管用?事实上, 除了jQuery更糟糕之外还有。

调查一下,我发现传单源代码中没有提到'dist'(正如我所期望的那样。我应该可以将该目录称为其他东西吗?)但是参考确实编译成uglified javascript('return"../../dist/"')

也许某人有一个jQuery Mobile和传单一起工作的例子(理想情况下包括标记图像)

1 个答案:

答案 0 :(得分:1)

问题是leaflet.js根据html中脚本标签的src属性评估ROOT_URL。但是第一页中缺少脚本标记。

在您的第一页(http://placr.mobi/maplinktest)中输入以上行:

<script src="/leaflet/leaflet.js" type="text/javascript"></script>

正好在:

之下
<div data-role="content" >

第二种替代解决方案是在第二页中添加以下内容:

L.Icon = L.Icon.extend({
    iconUrl: <markerUrl>,
    shadowUrl: <shadowUrl>
});

使用第二种方式明确设置图像URL。

第三种解决方案是在第一页的锚点中添加rel =“external”:

<a href="/map?lat=51.45289&amp;lon=-0.1003&amp;zoom=16" rel="external" class="ui-link">Link to map page</a>