onclick load {%include'test.html'%}

时间:2014-07-05 07:03:37

标签: javascript jquery python flask jinja2

我想在用户点击元素时加载Jinja2模板字符串。 例如,我有以下标签:

 <div class="one"><a href="#one">One</a></div>
 <div class="two"><a href="#two">Two</a></div>
 <div class="three"><a href="#three">Three</a></div>

只有在单击One之后,我必须加载波纹管字符串:

{% include 'one.html' %}

并且在单击Two之后,必须加载此字符串:

{% include 'two.html' %}

等等。 我该如何处理这个问题?点击

时动态内容加载

2 个答案:

答案 0 :(得分:2)

您将不得不使用一些JavaScript来实现这一目标。

一种解决方案是使用jQuery load http://api.jquery.com/load/

答案 1 :(得分:2)

请记住,JavaScript发生在浏览器(客户端),而Jinja2是基于python的模板,它将出现在服务器端。通过JavaScript显示模板字符串将无法实现您想要的结果。似乎有两种方法可以达到你想要的效果。

一个选项是在页面最初加载时输出模板的结果,然后通过一些javascript行为显示它。有很多jQuery插件可以实现这个结果,你可以看一个例子是Bootstrap Tabs

如果您不希望在首次加载页面时生成所有模板结果,则另一个选项是通过ajax加载模板的结果。需要将ajax请求提供给所需的jinja2模板的结果,然后可以将其输出到您的页面中。 jQuery's load提供了一种简单的方法。