0

我正在使用 django-easy-maps 在我的页面上显示地图,并且我在侧边栏上有一些链接,当用户单击该链接时,我想用链接中的地址刷新地图。

我的 donate.html 的 django 模板是这个

{% block optionalcode %}
<script>
$(document).ready(function() {
$('.link').click(function() {
var n = $(this).attr("name");
n=n.replace(/\s/g,'+');
$('#results').html('&nbsp;').load('/donate/?n=' + n);
});
});
</script>


{% endblock %}

{% block contenttitle %}{% endblock %}

{% block content %}     
<div class="container-fluid">
<div class="row-fluid">
<div class="span8">


<div class="hero-unit" style="padding:10px 10px 10px 10px">

<div id="results">
<b> <pre class="prettyprint
linenums"> {{addr}} </pre> </b>
{% load easy_maps_tags %}
{% easy_map addr 725 400 %}     
</div>

</div>
</div>





{% endblock %} 

{% block sidebar %} 
<div class="span4">
    <div class="hero-unit" style="padding:10px 10px 10px 10px">

        <div class="accordion" id="accordion2">

       <div class="accordion-group">
              <div class="accordion-heading">
                <a class="accordion-toggle" data-toggle="collapse" data-parent="#accordion2" href="#collapseOne">
                  North Delhi
                </a>
              </div>
              <div style="height: 0px;" id="collapseOne" class="accordion-body collapse">
                <div class="accordion-inner">
                  <ol>
                  <li><a class='link' href="#" name="Some name1">Some link1</a> </li>
                  <li><a class='link' href="#" name="Some name2">Some link2</a> </li>




                  </ol>
                </div>
              </div>
            </div>


</div>
{% endblock %}

我的视图代码在这里:

from django.shortcuts import render_to_response
from django.template import RequestContext
from django.http import HttpResponse

def ajax_req(request):
    if request.is_ajax():
        n = request.GET.get('n')
        return render_to_response('donate_res.html', {'addr': n},context_instance=RequestContext(request))


    else :
        return render_to_response('donate.html', {'addr': "Some Address"},context_instance=RequestContext(request))

donate_res.html 只是替换#results div 代码的一小部分。

<b> <pre class="prettyprint linenums"> {{addr}} </pre> </b> 
  {% load easy_maps_tags %} 
  {% easy_map addr 725 400 using "easy_maps/map.html"%}

问题是当我单击链接时,数据被发送回我知道的页面,因为我可以看到地址但未显示地图。快速查看 Firefox 中的 Web Developer 控制台会出现此错误。

A call to document.write() from an asynchronously-loaded external script was ignored. @ http://127.0.0.1:8000/donate/

请告诉我我做错了什么或解决此错误的解决方法...我是 Django 新手。

4

1 回答 1

0

看看这个问题。它应该回答为什么它不起作用。

另外,我个人不同意你这样做的方式。每次单击链接时都会重新创建和重新加载地图,这不仅效率低下,而且从长远来看,您可能会遇到问题,受限于您可以从 Google 加载地图的最大次数。

我建议您创建自己的 javascript 来加载地图和地址,或者查看 django-easy-maps 生成的代码,看看是否可以重新创建容器并重新下载地图 javascript 来设置地图的中心或标记应位于的点。

如果您可以粘贴 django-easy-maps 生成的代码,我可以提供更多帮助{% easy_map addr 725 400 using "easy_maps/map.html"%}

于 2012-07-16T22:34:39.117 回答