Purpose: In the XXXX project, many pop-up windows are implemented by appending freemarker web page tags. The web page pop-up box only displays the hidden div, which will slow down the web page during preloading and increase the page loading and The solution to the response time
is as follows:
1. Separate the html code and css of the pop-up page part
html: html/configure/layer -win/_group-add-layer.html
css: css/common/componnentWin.css
Sub-layer html: _group-add-layer.html
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>group Add</title> </head> <link rel="stylesheet" type="text/css" href="../../../js/lib/datePicker/skin/WdatePicker.css" /> <link rel="stylesheet" type="text/css" href="../../../css/common/componnentWin.css" /> <body> ···· </body> <script type="text/javascript" src="../../../js/jquery-1.9.1.js"></script> <script type="text/javascript" src="../../../js/lib/layer/layer.js"></script> <script type="text/javascript" src="../../../js/scooper/scooper.tool.xiacy.js"></script> <script type="text/javascript" src="../../../js/configure/layer-win/group-new-add.js"></script> <script type="text/javascript"> </script> </html>
Parent Layer html: Group-manager.html
<#include "/html/config/configure.html"/> <@menuConfig likey="stationGroup"> <link rel="stylesheet" type="text/css" href="${contextPath}/css/configure/group-manager.css" /> <link rel="stylesheet" type="text/css" href="${contextPath}/css/lib/userLibs/page-plugin.css"> <script type="text/javascript" src="${contextPath}/js/lib/layer/layer.js"></script> <script type="text/javascript" src="${contextPath}/js/lib/userLibs/page-load.js"></script> <script type="text/javascript" src="${contextPath}/js/scooper/scooper.tool.xiacy.js"></script> <script type="text/javascript" src="${contextPath}/js/configure/group-manager.js"></script> ····· </@menuConfig>
General pop-up window html:
<div id = "addNewGroupWin" class = "capsule-win show"> <div class = "capsule-win-top" title = "添加分中心"><span>添加分中心</span></div> <div class = "capsule-win-center"> <div class = "capsule-item" id = "oldDevSearch"> <div class = "item-left input_required" >名稱</div> <div class = "item-right"> <input id = "newGroupName" class = "sc_validate" title = "分中心名稱" type="text" placeholder="請輸入分中心名稱" scvalidate='{"required":true,"format":"string"}'/> </div> </div> <div class = "capsule-item"> <div class = "item-left input_required">經度</div> <div class = "item-right"> <input id = "newGroupLng" class = "sc_validate" title= "分中心經度" type="text" placeholder="請輸入0-180的數(shù)字" scvalidate='{"required":true,"format":"lng"}'/> </div> </div> <div class = "capsule-item"> <div class = "item-left input_required">緯度</div> <div class = "item-right"> <input id = "newGroupLat" class = "sc_validate" title = "分中心緯度" type="text" placeholder="請輸入0-90的數(shù)字" scvalidate='{"required":true,"format":"lat"}'/> </div> </div> <div class = "capsule-item" id = "processSNOLDIV"> <div class = "item-left input_required">描述</div> <div class = "item-right"> <textarea id = "newGroupDesc" class = "sc_validate" title = "分中心描述" scvalidate='{"required":true,"format":"string"}'></textarea> </div> </div> </div> <div class = "capsule-win-bottom"> <input id="addNewGroupSure" class = "btn-bottom centerfix btn-succ" type="button" value="確定"/> <input id="addNewGroupCancle" class = "btn-bottom btn-cancel" type="button" value="取消"/> </div> </div>
2.
4. Parent layer js
/** * <分中心管理> * 添加分中心 * Author : Yiyuery * Date : 2016/10/19 */ ;(function($,w,document,undefined){ $(document).ready(function(){ validatorInit(); clickEventBind(); }); var addGroupValidator = new Validator(); var contextPath = "/ZJDZYW"; /** * 表單驗證初始化 * @returns */ function validatorInit(){ addGroupValidator.init(function(obj, msg){ layer.tips(msg,obj,{ style: ['background-color:#78BA32; color:#fff', '#78BA32'], maxWidth:185, time: 2000, tips: 1, }); }); } /** * 點擊事件綁定 * @returns */ function clickEventBind(){ addNewGroupClick(); } /** * 分中心相關點擊事件 * @returns */ function addNewGroupClick(){ $("#addNewGroupSure").click(function(){ addNewGroupSure(); }); $("#addNewGroupCancle").click(function(){ addNewGroupCancle(); }); } /** * 添加新的分中心 [確定] * @returns */ function addNewGroupSure(){ validatorInput(); } /** * 添加分中心 [取消] */ function addNewGroupCancle(){ closeLayerWin(); } /** * 關閉當前打開的layer彈窗 */ function closeLayerWin(){ var index = parent.layer.getFrameIndex(window.name); parent.layer.close(index); //再執(zhí)行關閉 } /** * 表單提交輸入驗證 */ function validatorInput(){ /** * 輸入校驗 */ if(!addGroupValidator.validate("addNewGroupWin")){ return; } var paras = { "group_name" : $("#newGroupName").val(), "longitude" : $("#newGroupLng").val(), "latitude" : $("#newGroupLat").val(), "group_desc" : $("#newGroupDesc").val(), }; $.ajaxSettings.async = false ; $.getJSON(contextPath+"/stationGroup/add", paras, function(resp){ if(resp.code !=undefined && resp.code == 0){ console.log("分中心列表刷新!"); } }); $.ajaxSettings.async = true ; closeLayerWin(); } })(jQuery,window,document);
loadGroupCenterInfo: parent layer js method, when closing the layer pop-up window, call the parent layer method to refresh the sub-center list
5. The parent layer pop-up window is not available here Jumping out of the nested iframe of the parent page, due to the operation loadGroupCenterInfo of adding a sub-center, the click event is nested in the reactivation clickEventInit. This method is not global and cannot be passed to the parent page through end for execution again
$("#addGroup").click(function(){ layer.config({ path : '${contextPath}/js/lib/layer' }); index = layer.open({ type: 2, area: ['520px', '400px'], fix: false, //不固定 title: '', maxmin: false, scrollbar:false, shade:0.5, shadeColse:true, content:capsule.request.path.groupMan.layer.groupManAddLayerShow, end:function(){ loadGroupCenterInfo(); } }); });
Therefore: When the callback function involves calling functions of the current layer, it cannot be implemented using the outermost pop-up box of the general layer. The layer can only be re-modularly introduced in the js of the current page
[Later, it was discovered that it is actually Yes, you just need to write the callback function directly in the calling method, see: Method callback in JavaScript and method call of parent page Iframe]/** * 加載分中心 */ function loadGroupCenterInfo(){ $.ajaxSettings.async = false ; $.getJSON(capsule.request.path.groupMan.getJson.loadCenterGroup,{},function(data){ $("#groupCenterArea").empty(); $.each(data.list,function(i,obj){ groupMap.setKeyValue(obj.id,obj.group_name); var count = obj.c_num; if(obj.c_num == null || obj.c_num == "null"){ count = 0; } var html = '<div class="groupItemDiv" id='+obj.id+'>' + '<img class="checkBoxLeftSite" src="'+contextPath+'/image/Checkbox.png"/>'+obj.group_name+"("+count+")"+'<li title="編輯" class="editGroup"></li></div>'; $("#groupCenterArea").append(html); }); clickEventInit(); }); $.ajaxSettings.async = true ; }
6. Universal pop-up style css
layer.config({ path : '${contextPath}/js/lib/layer' }); index = layer.open({ type: 2, area: ['520px', '400px'], fix: false, //不固定 title: '', maxmin: false, scrollbar:false, shade:0.5, shadeColse:true, content:capsule.request.path.groupMan.layer.groupManAddLayerShow, end:function(){ loadGroupCenterInfo(); } });
Final effect:

Hot AI Tools

Undress AI Tool
Undress images for free

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Clothoff.io
AI clothes remover

Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)