【问题标题】:Django and loading jQueryDjango 和加载 jQuery
【发布时间】:2013-05-13 06:24:20
【问题描述】:

可以在子页面中有脚本标签并由Django 渲染它们(子页面已加载/显示)?

我有一个具有这种结构的移动网络应用程序

ROOT
--PAGE1 (here I'd like to have the script rendered by Django)
--PAGE2
--PAGE3
--PAGE4

原因是因为在第二页上我有自定义控件,例如:翻转开关、按钮等,它们将在该页面上执行特定操作。

代码sn-ps:

//This one gets rendered only when root page is loaded
jQuery(document).ready(function($) {
        //But the control / html element its on the second page
        $("#myswitch").change(function() {
                console.log("Switch changed!");
        });
});

【问题讨论】:

    标签: jquery python django pageload


    【解决方案1】:

    当然。您需要的是一个基本模板和一个用于最终正文脚本的自定义块,这是一个示例:

    base.html:

    <html>
    <head></head>
    <body>
      <script src="/path/to/jquery.js"></script>
      {% block tail_scripts %}{% endblock tail_scripts %}
    </body>
    </html>
    

    page1..4.html:

    {% extends 'base.html' %}
    
    {% block tail_scripts %}
    <script src="/path/to/custom/script/if/needed.js"></script>
    <script type="src/javascript">
      (function() {
        console.log('Build something awesome!');
      })();
    </script>
    {% endblock tail_scripts %}
    

    【讨论】:

    • 感谢代码 sn-ps 并为我指明了正确的方向!我还有一个问题。为什么只有在我刷新页面然后整个设计中断后才加载脚本(使用 jQuery 的 css,因为刷新后路径无效)。不知道如何解决这个问题...
    • 脚本没有被加载是什么意思? django 是在资源上产生 404 还是浏览器没有执行它?
    • 我最终用路径弄清楚了,但现在我在标题中创建了一个块,在我的扩展页面上我想加载另一个 JavaScript 文件,但它只有在 DOM 之后我刷新页面。知道如何解决这个问题吗?谢谢!
    • 通过将块放在页面 div 中作为this answer says来修复
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-04-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多