layer捕获页代码如下:
//捕获页
layer.open({
type: 1,
shade: false,
title: false, //不显示标题
content: $('.layer_notice'), //捕获的元素,注意:最好该指定的元素要存放在body最外层,否则可能被其它的相对元素所影响
cancel: function(){
layer.msg('捕获就是从页面已经存在的元素上,包裹layer的结构', {time: 5000, icon:6});
}
});
但是如果按照官网说的 把要指定的元素放在body外层,则根本找不到该元素。
变通的办法:在body内写一个空白的div,当触发的时候就在空白div内添加html,如果关闭掉弹出层,则把这个div的html代码全部清空。代码如下:
function parvalueFocus(n){
var $ob = $(n);
//alert($ob.val());
layer.open({
type: 1,
area: ['600px', '360px'],
shadeClose: true, //点击遮罩关闭
content: $('#layer_notice'),
offset: '100px',
cancel: function(){
var par = "";
//遍历字典名称和字典值放入输入框里
//alert($(".newpar_sub").html());
//将数据回填
$.each( $(".newpar_sub"), function(i, x){
//alert(90);
//获取子元素
var $x = $(x);
par = par + $x.children(".parname_sub").val()+":"+$x.children(".parvalue_sub").val()+",";
});
par = par.substring(0,par.length-1);
$ob.val(par);
$('#layer_notice').html("");
}
});
$('#layer_notice').html('<div><a href="#" onclick="appendInputSub();"><i class="icon-plus"></i></a> <a href="#" onclick="removeInputSub();"><i class="icon-minus"></i></a></div>'+
"<div class='newpar_sub'>字典名称:<input class='parname_sub' type='text' value=''/>字典值:<input class='parvalue_sub' type='text' value=''/></div>");
}