1.在移動端中點擊事件會有300毫秒的延時,解決辦法是添加fastclick.js
2.減少點擊觸發事件
var Initialization=true;觸發點擊事件的時候判斷Initialization是否為true。當layer.open執行成功的時候把Initialization=false;這樣減少了頁面出錯。(但是第一次觸發點擊事件的時候,多次點擊還是會有bug的);
代碼如下:
function CommandState(argument,ev){
var oEvent=window.event||arguments.callee.caller.arguments[0];
if(Initialization==true){
$.ajax({
"url": CommandOrderView,
"data":{
"action":RobotOrder+"2",
"TaskTd":argument
},
"type":"post",
success: function(data){
Initialization=false;
var tan = layer.open({
type:1,
title: '任務信息',
area:['320px','460px'],//寬高
offset: '50px',
fixed: false,
anim: 1,
content: $("#ListDialog"),
success: function(layero,index){
$("#contain .nav-right").css({position:"unset",margin: "0 0 0 "+localStorage.leftwidth+"px",transition: "0s"}); //如果該父級原來沒有設置相對定位,那么在追加該彈層之前需要設置
Initialization=true;
var LayuiLayerShadeLenght=$(".layui-layer-shade").length;
if(LayuiLayerShadeLenght>1){
$(".layui-layer-shade").css({"z-index":"9999"});
}
},
btn:['編輯','刪除','取消'],
yes:function(index){
window.location.href=CommandEditCom+"?id="+argument+"";
},
btn2:function(){
layer.alert('你確定要刪除Order #'+argument+'任務嗎?', {
skin: 'layui-layer-molv'
,anim:1
,icon:8
,time:0
,closeBtn: 0
,btn:['確定','取消']
,btn1:function(index){
$.ajax({
"url": CommandOrderView,
"type": "post",
"data": {
"action": "TaskDelete",
"TaskTd":argument,
"RobotState":data.Order.ordre_state
},
success: function(data) {
if(data.state==200){
if(data.msg=="修改成功"){
layer.msg("刪除成功");
}else if(data.msg=="刪除成功"){
// layer.msg('刪除成功!');
}
layer.close(index);
$(".RobotsAggregate"+argument).parent().hide();
$("#contain .nav-right").css({position:"fixed",margin: "0",transition: "0s"});
}
},
error: function(data){console.log("刪除機器人");}
});
},btn2:function(){
layer.msg('已取消!');
$("#contain .nav-right").css({position:"fixed",margin: "0",transition: "0s"});
}
});
},
end:function(){
$("#contain .nav-right").css({position:"fixed",margin: "0",transition: "0s"});
$(".layui-layer-shade").remove();
}
});
},
error:function(data){
console.log("顯示機器人執行任務正在運行的狀態");
}
});
}
}
3.根據上面的代碼所示:當layer.open執行成功的時候,獲取遮罩層的數量,和數量大於1的時候,把遮罩層z-index的屬性值小於content連接彈出框的屬性,確保,content連接的標簽在遮罩層的上面,如下代碼所示
var LayuiLayerShadeLenght=$(".layui-layer-shade").length;
if(LayuiLayerShadeLenght>1){
$(".layui-layer-shade").css({"z-index":"9999"});
}
4.layer.open關閉的時候,默認只關閉一個遮罩層,但是多次觸發會出現多個遮罩層,雖然content連接的標簽可以正常顯示,但是,關閉的時候只能關閉一個。剩下的遮罩層會影響頁面操作。解決辦法是,當關閉content連接的標簽是,用jquery把所有的遮罩層移除即可。
end:function(){
$(".layui-layer-shade").remove();
}
