django实现tab页思路!

来源:互联网 发布:薄膜厚度测量实验数据 编辑:程序博客网 时间:2024/06/06 16:30

首先是在主页js里动态加载tab页需要的js

方法:

 function addScript(jsfile,callback){        var head= document.getElementsByTagName('head')[0];          var script= document.createElement('script');          script.type= 'text/javascript';          script.onload = script.onreadystatechange = function() {              if (!this.readyState || this.readyState === "loaded" ||    this.readyState === "complete" ) {                 script.onload = script.onreadystatechange = null;                  if(callback&&typeof(callback)== 'function'){                      callback();                }            }         };          script.src= jsfile;          head.appendChild(script);    }    function jsLoaded(){       alert('ok');    }    调用方式,在需要的地方    addScript(js路径,jsLoaded);

问题出在 django模板需要{% static 'MoudleBaseJs/menu_manage.js' %}这种格式  所以 放到js路径里根本找不到。

-------

各个业务js用function包含可以有效限制变量污染问题:因为js是函数作用域,在函数体内只要var声明就只作用于当前业务js里不会污染全局同名js,

另外可以不加var声明 来引用主页的全局变量。

-------

tab页里动态加载分离的html调用jquery的load方法:

$("#center2").load("BaseMoudule/GetLoad #menu_manage");  #menu_manage为分离html的dom的id 意思是将主页id为center2的dom下增加分离html里id为menu_mang的dom为子级
------------------------------------------------------------------------------------------------------------------------------------------
解决{% static 'MoudleBaseJs/menu_manage.js' %}这种格式  所以 放到js路径里根本找不到。
直接改变路径为 
addScript("static/MoudleBaseJs/menu_manage.js",jsLoaded);
不需要加%static%这样的引入静态文件的特殊字符

0 0