layer捕获页代码如下:

1
2
3
4
5
6
7
8
9
10
//捕获页
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代码全部清空。代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
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>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<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>");
}