layer捕获页如何实现
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>"); }