js - 多个函数动态加载
//动态添加物流锁的IEMI列表. function createLi() { var r = '<s:property value="#session.locks"/>'; if (!r) return; //部门名称. var department = document.getElementById('department'); var departmentName = '<s:property value="#session.departmentName"/>'; department.innerHTML = '<h3>' + departmentName + '</h3>'; //IEMI列表. var IEMEArr = JSON.parse(r); for ( var i = 0; i < IEMEArr.length; i++) { //IEMI项. var li = document.createElement("li"); var lockIMEI = IEMEArr[i]; li.innerHTML = "<a>" + lockIMEI + "</a>"; li.className = 'sliderTag'; //添加IEMI. var ul = document.getElementById("sliderNav"); ul.appendChild(li); } } //点击锁编号时,执行ajax请求. function lock_request() { //对id为'sliderNav'的ul中的li执行操作. $("#sliderNav li").click(function() { var idx = $(this).index(); //第一个li为'单位名,不操作. if(0 === idx) return; var params = { lockIMEI : $(this).text() }; $.ajax({ type : "POST", cache: false, async :true, //当struts.xml文件的配置中package的namespace不为'/'时('sys_v27'为项目名). url : "/sys_v27/locks/Lock_queryMapByAttSuccess", data : params, dataType : "text", //json格式对于map的json格式竟然不起作用(IE10). //contentType: "application/x-www-form-urlencoded; charset=utf-8", success : function(json) { var obj = $.parseJSON(json); //使用这个方法解析json var lockJson = obj.result; //result是和action中定义的result变量的get方法对应的 addMarker(lockJson); }, error : function(json) { handle_err(json); return false; } }); }); } //自动加载js的函数. function addLoadEvent(func) { var oldonload = window.onload; if (typeof window.onload != 'function') { window.onload = func; } else { window.onload = function() { oldonload(); func(); }; } } //--自动加载. addLoadEvent(new Function("mapInit();")); addLoadEvent(new Function("createLi();")); addLoadEvent(new Function("lock_request();"));
使用自定义js函数:addLoadEvent, 可以多次指定'自动执行'的js函数. 本例中, 指定加载'地图', 即mapInit() 函数, 自动加载'物流车'列表, 注册ajax请求:当点击物流锁的li时,请求对应的详细信息.