zoukankan      html  css  js  c++  java
  • sort:前端实用记录1

    H5原生的元素选择器使用

    document.querySelector(".class1"); //返回选中的第一个元素
    document.querySelectorAll(".class1"); //返回选中的所有元素
    

    jQuery未来DOM事件绑定

    //普通事件绑定是监听不到未来动态DOM的
    $('li a.class1').click(function(){
        console.log($(this).attr('href'))
        return false
    });
    
    //改用 on方法 绑定 
    $("li a.class1").on('click', function(){
        console.log($(this).attr('href'))
        return false
    })
    
    //测试发现上面的on写法也只能普通监听
    //需要换个写法
    $('li').on('click', 'a.class1', function(){
        console.log($(this).attr('href'))
        return false
    })
    

    layui按钮禁用的正确姿势

    // layui-btn-disabled类只是改变了样式,需要再加上原始disabled属性
    <button class="layui-btn layui-btn-xs layui-btn-disabled" disabled lay-event="edit">edit</button>
    

    layui弹窗iframe传值

    • 父页面->子页面
    layer.open({
         type:2 
        ,content:'<%=path%>/xxx/xxx.jsp'
        ,area: ['700px','350px']
        ,title:'xxx'
        ,success:function (layero,index) { 
            //1 隐藏域传值
        	//var body = layer.getChildFrame('body', index);
            //body.contents().find("#userId").val(data.userId);	
            //body.contents().find("#orgUserId").val(data.orgUserId);
            //2 直接调用子页面方法
        	var child = window[layero.find('iframe')[0]['name']];
        	child.saveParentData(data); 
        }
    })
    
    • 新问题
      使用方式2,子页面layui.use中使用传过来的初始就需要使用时会获取不到传的值,因为执行顺序问题?
      • 原因
        child.xxx() 时,layui.use块是已经执行完毕的,所以在子页面初始layui.use块中就使用传递的值是没有的(比如后台加载数据,操作需要依赖layui)
    • 解决办法1
      直接把xxx方法定义给layui对象,在layui.use块中直接完成所需要的操作。
    父页面:
    ,success:function (layero,index) { //子页面ifram传值
    	var iframeWin = window[layero.find('iframe')[0]['name']];
    	//console.log(iframeWin)
    	iframeWin.layui.initFormData(data.orgUserId, data.userId); //调用子页面方法
    }
    子页面:
    layui.use([ 'layer', 'form', 'element' ], function() {
    	var layer = layui.layer, form = layui.form, element = layui.element ;
    	
    	//加载表单所需信息
    	layui.initFormData = function(orgUserId, userId){
    		console.log('parentData:', orgUserId, userId)
    		ajaxPost('/xxxInfo.do'
    			, {
    				'orgUserId': orgUserId,
    				'userId': userId
    			}
    	  		, function(resp){
    	  			if(resp.success){
    	  				//获取4个表单数据
    	  				console.log(resp)
    	  			}else{
    			  		layer.msg('code: '+resp.errorCode+'<br/>msg: '+resp.errorDescription, {icon: 5});
    	  			}
    	  		}
    	  	);
    	};
    });
    
    • 解决办法2
      也是一样,在xxx()中完成需要的操作。
      只是如果需要进行的操作不依赖layui模块的话,可以直接定义在layui.use外。

    layui修改表单label长度

    width和margin-left按需调整

    • 正常表单
    .layui-form{
    	margin-top: 10px
    }
    .layui-form-label {
    	 100px;
    }
    .layui-input-block {
    	margin-left: 110px;
    }
    
    • pane风格表单
    .layui-form{
    	margin-top: 10px
    }
    .layui-form-pane .layui-form-label{
    	120px
    }
    .layui-form-pane .layui-input-block {
    	margin-left: 120px;
    }
    
  • 相关阅读:
    基于python+django+mysql的接口测试平台
    firefox没有装在C盘,webdriver启动firefox时报错
    Python知识点面试题
    Python面试题整理
    Python程序猿面试杂谈
    Python面试-websocket及web框架
    Python面试-DB相关
    Python面试简介及并行并发
    flink-demo2
    flink-table demo
  • 原文地址:https://www.cnblogs.com/noodlerkun/p/11462134.html
Copyright © 2011-2022 走看看