extJs 常用到的增,删,改,查操作代码


Posted in Javascript onDecember 28, 2009
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <html> 
    <head> 
        <title>extJs中常用到的增删改查操作的示例代码</title> 
        <!-- CommonJs.jsp 为 ExtJS 引入的路径 --> 
        <%@ include file="../extJs/CommonJs.jsp"%> 
        <script type="text/javascript"><!-- 
        /** 
        * 作     者: 花 慧 
        * 时     间: 2009年12月22日 
        * 内 容: extJs中常用到的增,删,改,查操作 
        */     
        //设置每页显示的行数默认为10 
        var QUERY_PAGE_SIZE = 10; 
        /** 
        * SearchQueryForm():绘制查询表单 
        */ 
        function searchQueryForm() 
        { 
         //form 使用的时候建议设为局部变量,可以通过Ext.getCmp(“”)去获取form 
         var queryForm = null; 
            queryForm = new Ext.FormPanel({ 
                id:'queryForm', //指定queryForm的Id 
                renderTo:'searchPanel', //指向form所在的div层 
                labelWidth:70, //label标签的width占页面的百分比 
                region:'north', 
                border:false, //以显示面板的body元素的边界,虚假隐藏起来(默认为true) 
                badyBorder:false, //显示面板的body元素,假以隐藏它(默认为true的内部边界) 
                labelAlign:'right', //label标签的对齐方式 
                frame:true, //自定义面板的圆形边界,边界宽度1px。默认为false 
                title:'用户信息查询', //form的标题 
                /** 
                *buttons:在FormPanel中按钮的集合 
                */ 
                buttons:[{handler:addForm,text:'新增'}, 
                        {handler:submitForm,text:'查询'}, 
                        {handler:resetForm,text:'重置'}], 
             /** 
             * items: 在FormPanel中不可缺少的部分 
             */ 
             items:[{ 
         /** 
              * layout:extJs容器组件,可以设置它的显示风格 
              * 它的有效值有absolute,accordion,anchor,border,card,fit,form and table 共9种 
              */ 
                 layout:'column', 
                 items:[ 
                     { 
                         columnWidth:.5, 
                         layout:'form', 
                         items:{ 
                             name:'userId', 
                             hiddenName:'userId', 
                             xtype:'textfield', 
                             fieldLabel:'用户编码', 
                             maxLength:'50', 
                             vtype:'specialChar', 
                             anchor:'80%' 
                         } 
                     },{ 
                         columnWidth:.5, 
                         layout:'form', 
                         items:{ 
                             name:'userName', 
                             hiddenName:'userName', 
                             xtype:'textfield', 
                             fieldLabel:'用户名称', 
                             maxLength:'100', 
                             vtype:'specialChar', 
                             anchor:'80%' 
                         } 
                     } 
                 ] 
             }] 
            }); 
        } 
        /** 
        * showUserForm():绘制添加表单 
        */ 
        function showUserForm() 
        { 
         //将变量定义成局部变量,避免每次都生成一个新对象 
            var userForm = null; 
            userForm = new Ext.FormPanel({ 
                id:'conditionForm', 
                labelWidth:'80', 
                labelAlign:'right', 
                border:false, 
                bodyBorder:false, 
             frame:true, 
             items:[ 
                 layout:'column', 
                 items:[ 
                 { 
                     columnWidth:'.8', 
                     items:{ 
                         name:'userInfo.userId', 
                         hiddenName:'userInfo.userId', //hiddenName动态的绑定数据库中对应的字段 
                         xtype:'textField', //xtype可以分为三类,textField为表单域的控件 
                         fieldLabel:'用户编码<font color=red>*</font>',//控件前的文本说明 
                         labelSeparator:'', 
                         blankText : '填写用户编码', //为空的文本框提示信息 
                         allowBlank:false,      //不允许为空 
                         maxLength:'50',      //文本框允许输入的最大的长度,最小的minLength 
                         vtype:'specialChar', 
                         anchor:'80%' 
                     } 
                 },{ 
                     columnWidth:'.8', 
                     items:{ 
                         name:'userInfo.userName', 
                         hiddenName:'userInfo.userName', 
                         xtype:'textField', 
                         fieldLabel:'用户姓名<font color=red>*</font>', 
                         labelSeparator:'', 
                         blankText:'填写用户姓名', 
                         allowBlank:false, 
                         maxLength:'100', 
                         vtype:'specialChar', 
                         anchor:'100%' 
                     } 
                 },{ 
                     columnWidth:'.8', 
                     items:{ 
                         name:'userInfo.pwd', 
                         hiddenName:'userInfo.pwd', 
                         xtype:'textField', 
                         inputType:'password', 
                         fieldLabel:'用户密码<font color=red>*</font>', 
                         labelSeparator:'', 
                         blankText:'填写用户密码', 
                         allowBlank:false, 
                         maxLength:'12', 
                         minLength:'6', 
                         value:'123456', //用户默认的秘密 
                         anchor:'100%' 
                     } 
                 },{ 
                     columnWidth:'.8', 
                     items:{ 
                         name:'rPwd', 
                         hiddenName:'rPwd', 
                         xtype:'textField', 
                         inputType:'password', 
                         fieldLabel:'确认密码<font color=red>*</font>', 
                         labelSeparator:'', 
                         blankText:'二次输入的秘密要相同', 
                         allowBlank:false, 
                         vtype:'pwdRange', 
                         pwdRange:{begin:'userInfo.pwd',end:'rPwd'}, 
                         maxLength:'12', 
                         anchor:'100%' 
                     } 
                 }] 
             ] 
            }); 
        } 
        /** 
        * editUserForm():绘制修改表单 
        */ 
        function editUserForm(){ 
            //将变量定义成局部变量,避免每次都生成一个新对象 
            var userForm = null; 
            userForm = new Ext.FormPanel({ 
                id:'editForm', 
                labelWidth:'80', 
                labelAlign:'right', 
                border:false, 
                bodyBorder:false, 
             frame:true, 
             items:[ 
                 layout:'column', 
                 items:[ 
                 { 
                     columnWidth:'.8', 
                     items:{ 
                         name:'userInfo.userId', 
                         hiddenName:'userInfo.userId', //hiddenName动态的绑定数据库中对应的字段 
                         xtype:'textField', //xtype可以分为三类,textField为表单域的控件 
                         fieldLabel:'用户编码', //控件前的文本说明 
                         labelSeparator:':', 
                         readOnly:true, //文本框只读 
                 disabled:true, //文本框灰色,区别与其他的文本框颜色 
                         blankText : '填写用户编码', //为空的文本框提示信息 
                         allowBlank:false,      //不允许为空 
                         maxLength:'50',      //文本框允许输入的最大的长度,最小的minLength 
                         //字母开头,且只能存在字母与数字长度为2到12位 
                         regex : /^[a-zA-Z]{1}([a-zA-Z0-9]|[_]){1,11}$/, 
                 regexText : '用户编码必须以字母开头,长度2-12位!', 
                         anchor:'90%' 
                     } 
                 },{ 
                     columnWidth:'.8', 
                     items:{ 
                         name:'userInfo.userName', 
                         hiddenName:'userInfo.userName', 
                         xtype:'textField', 
                         fieldLabel:'用户姓名', 
                         labelSeparator:':', 
                         blankText:'填写用户姓名', 
                         allowBlank:false, 
                         maxLength:'100', 
                         //只含有汉字、数字、字母、下划线不能以下划线开头和结尾 
                         regex : /^(?!_)(?!.*?_$)[a-zA-Z0-9_\u4e00-\u9fa5]+$/, 
                 regexText : '只含有汉字、数字、字母、下划线不能以下划线开头和结尾!', 
                         anchor:'90%' 
                     } 
                 },{ 
                  columnWidth:'.2', 
         items:{ 
     hiddenName:"infoFill", 
         name:"infoFill", 
         xtype:'label', 
         html:'<font color=red>*</font>', 
         labelSeparator:'', 
         anchor:'100%' 
         } 
                 },{ 
                     columnWidth:'.8', 
                     items:{ 
                         name:'userInfo.pwd', 
                         hiddenName:'userInfo.pwd', 
                         xtype:'textField', 
                         inputType:'password', 
                         fieldLabel:'用户密码<font color=red>*</font>', 
                         labelSeparator:':', 
                         blankText:'填写用户密码', 
                         allowBlank:false, 
                         maxLength:'12', 
                         minLength:'6', 
                         anchor:'90%' 
                     } 
                 },{ 
                  columnWidth:'.2', 
         items:{ 
     hiddenName:"infoFill", 
         name:"infoFill", 
         xtype:'label', 
         html:'<font color=red>*</font>', 
         labelSeparator:'', 
         anchor:'100%' 
         } 
                 },{ 
                     columnWidth:'.8', 
                     items:{ 
                         name:'rPwd', 
                         hiddenName:'rPwd', 
                         xtype:'textField', 
                         inputType:'password', 
                         fieldLabel:'确认密码<font color=red>*</font>', 
                         labelSeparator:':', 
                         blankText:'二次输入的秘密要相同', 
                         allowBlank:false, 
                         //在extCommon.js文件中定义二次输入的密码相同验证pwdRange 
                         // vtype为验证的方法,如果是通用的验证,请在方法中定义,如果是特例,可以使用regex 
                         vtype:'pwdRange', 
                         pwdRange:{begin:'userInfo.pwd',end:'rPwd'}, 
                         maxLength:'12', 
                         anchor:'90%' 
                     } 
                 },{ 
                  columnWidth:'.2', 
         items:{ 
     hiddenName:"infoFill", 
         name:"infoFill", 
         xtype:'label', 
         html:'<font color=red>*</font>', 
         labelSeparator:'', 
         anchor:'100%' 
         } 
                 }] 
             ] 
            }); 
        } 
        /** 
        * onReady:该文件准备好(在onload和图像加载之前) 
        */ 
        Ext.onReady(function(){ 
            searchQueryForm(); 
            //获取查询form 
            var queryForm = Ext.getCmp("queryForm").getForm(); 
         /** 
         * layout设置为border表示页面将划分为东南西北中五个部分 
         * 这里表示centerPanel放在中间 
         */ 
            var layout = new Ext.Viewport({ 
                layout:'border', 
                defaluts:{border:false,bodyBorder:false,activeTab:0}, 
          items:[queryForm,{id:'centerPanel',region:'center',height:document.body.clientHeight,contentEl:'mainDiv'}] 
            }); 
            //页面加载的时候,默认数据查询页面显示用户信息列表 
            submitForm(); 
        }); 
        //查询信息 
        var store = new Ext.data.Store({ 
            url:'../user/doGetPageList.action', //action的路径 
            reader:new Ext.data.JsonReader({ 
                root:'userList', //从struts2.0里面传递过来的参数:用户的集合 
                totalProperty:'rowTotal', //从struts2.0里面传递过来的参数:总共的信息的行数 
                id:'userId', 
                successPropery:'success'}, 
                ['userId','userName','pwd'] 
            ) 
        }); 
        /** 
        * callback:调用的函数 
        */ 
        function getMsg() 
        { 
        } 
        /** 
        * 模糊查询 
        */ 
        function submitForm() 
        { 
         //初始化grid 
            var grid = null; 
            //复选框 
            var sm = new Ext.grid.CheckboxSelectionModel({ 
                dataIndex:'id', 
                width:'20' 
            }); 
            /** 
         *  sortabel:(可选)如果真要排序允许在此列 
         *  renderer:(可选)用于生成给定数据值单元格的HTML标记的功能。如果没有指定,默认渲染器使用的原始数据值。 
         * 在renderer:function createButton(参数)这里的参数可以没有或多个 
         *  鼠标移动图片上变成"手"是:style="cursor:hand" 
         */ 
            var colM = new Ext.grid.ColumnModel( 
                [sm,{header:'用户账号',dataIndex:'userId',align:'center',sortable:true}, 
                {header:'用户姓名',dataIndex:'userName',align:'center',sortabel:true}, 
                {header:'删除',dataIndex:'id',align:'center',renderer:function createButton(){ 
                    return '<img alt="删除" style="cursor:hand" style="cursor:hand" src="../images/hh_framework/ico_delete.gif" src="images/hh_framework/ico_delete.gif" />';}}, 
                {header:'编辑',dataIndex:'userId',align:'center',renderer:function createButton(userId, metadata, record){ 
                    return '<a style="cursor:hand" style="cursor:hand" onclick=updateForm('+userId+') >'+record.get('userName')+'的信息修改'+'</a>';}}] 
            ); 
         //获取查询表单 
            var form = Ext.getCmp("queryForm").getForm(); 
            //判断是否通过验证,如果没有请直接关闭 
            if(!form.isValid()) 
            { 
                Ext.Msg.alert("系统提示","查询数据不正确,请确认输入!"); 
                return ; 
            } 
            //差选queryform中查询的数据参数 
            store.baseParams = form.getValues(); 
            /** 
            * getLimitCount():获取分页每页行数,如果不传值,则会取默认值 
            * Start表示读取数据的起始位置、limit表示每次读取多少条数据 
            * callback:getMsg 表示回调时,执行函数 getMsg。可省略 
            */ 
            store.load({params:{start:0,limit:getLimitCount()}, callback:getMsg}); 
            if(grid == null) 
            { 
                grid = new Ext.grid.EditorGridPanel({ 
                    renderTo:"mainDiv", //grid查询结果指向显示的div层 
                    title:"用户查询结果", //grid标题 
                    width:document.body.clientWidth, //设置grid的width的值 
                    hight:document.doby.clientHight-100,//设置hight的值 
                    viewConfig:{forceFit:true}, //设置列数的充满窗口 
                    loadMask:true,                //在加载数据时的遮罩效果 
                    stripeRows:true, //隔行换色 
                    region:'center', //这个是设置在ViewPort中显示的位置 
                    cm:colM, //定义的列 
                    ds:store, //定义的数据源 
                    border:false, 
                    bodyBorder:false, 
                    sm:sm, //定义的复选框 
                    //listeners:包含一个或多个事件处理程序被添加到这个对象初始化过程中 
                    listeners:{cellclick:renderPage}, 
                    /** 
                 * bbar: new Ext.PagingToolbar部分是定义分页工具栏, 
                 * 这里的分页控件栏还用到了1个自己定义的插件,就是可以选择每页显示多少条的 
                    * plugins : [new Ext.ux.PageSizePlugin()],参考Ext的API 
                 * 要实现分页,后台必须有total属性,表示共多少条数据 
                 */ 
                    bbar:new Ext.PagingToolbar({ 
                        items:[{ 
                            xtype:'button', 
                            text:'删除所选', 
                            handler:delUserAll, //自定义执行动 
                            pressed:true 
                        }], 
                        id:'pageToolBar', 
                        pageSize:QUERY_PAGE_SIZE, //每页的行数默认为:QUERY_PAGE_SIZE 
                        store:store, 
                        displayInfo:true, 
                        displayMsg:'显示第{0}条到{1}条记录,共{2}条记录', 
                        emptMsg:'没有记录', 
                        plugins:[new Ext.ux.PageSizePlugin()] 
                    }) 
                }); 
            } 
            grid.render(); 
        } 
        /** 
        * 增加用户信息 
        */ 
        function addForm() 
        { 
            showUserForm(); 
            //获取绘制用户窗口的form 
            var userForm = Ext.getCmp("conditionForm").getForm(); 
            //初始化用户添加的窗口的Id 
            var addUserWin = Ext.getCmp("addWin"); 
            if(addUserWin == null) 
            { 
                addUserWin = new Ext.Window({ 
                    width:500, //初始窗口的width的值 
                    x:100, //窗口的初始化x方向的位置 
                    y:100, //窗口的初始化y方向的位置 
                    plain:true, 
                    modal:true, //模式窗口,默认为false 
                    closeAction:"hide", //默认窗口隐藏 
                    resizable:false, //窗口的大小不允许拖动,默认为true 
                    id:"addWin", //指定用户添加窗口的Id 
                    items:[userForm], 
                    buttons:[ 
                 {text:'保存',handler:function(){ 
                     if(userForm.form.isValid()){ 
                      userForm.form.doAction('submit',{ 
                             url:'../user/addUser.action', 
                             params:{roleId:userForm.form.findField('userId').getValue()}, 
                             method:'post', //数据提交的方式:有两种get,post 
                             waitTitle:'提示信息', //数据提交等待的滚动条 
                             waitMsg:'保存数据,请稍候...', //滚动条提示的内容 
                          success:function(form,action){ 
                          var message = action.result.message; 
                              if(message == null){ 
                              Ext.Msg.alert("提示信息","用户信息添加成功!"); 
                              store.reload(); 
                              addUserWin.hide(); 
                              }else{ 
                              Ext.Msg.alert("提示信息",message); 
                              } 
                          }, 
             failure:function(form,action){ 
             Ext.Msg.alert('提示信息',"新用户添加失败!"); 
             return; 
             } 
             }); 
                 }else { 
                     Ext.Msg.alert("提示信息","表单有错误,请正确填写!"); 
                 } 
                 }}, 
                 {handler:function(){userForm.form.reset();},text:'重置'}, 
                 {handler:function(){addUserWin.hide();},text:'关闭'}] 
                }); 
            } 
            addUserWin.show(); 
        } 
        /** 
        * 删除用户信息 
        */ 
        function delForm(userId) 
        { 
            Ext.Msg.confirm('提示信息','你确定要执行删除操作吗?',function(btn){ 
                if(btn == 'yes') 
                { 
                     /** 
                 * 数据提交的一种方式:Ext.Ajax.request({}); 
                 */ 
                    Ext.Ajax.request({ 
                        url:'../user/delUser.action', 
                        params:{userId:userId}, 
                        method:'post', 
                        success:function(o) 
                        { 
                            var info = Ext.decode(o.responseText); 
                            Ext.Msg.alert("提示信息",info.message); 
                            store.reload(); 
                            return ; 
                        }, 
                        failure:function(form,action) 
                        { 
                            Ext.Msg.alert("提示信息","用户信息删除失败!"); 
                            return ; 
                        } 
                    }); 
                } 
            }); 
        } 
        /** 
        * 批量删除事件 
        */ 
        function delUserAll() 
        { 
         //grid中复选框被选中的项 
             var rows = grid.getSelectionModel().getSelections(); 
             //user_id:所有选中的用户Id的集合使用','隔开,初始化为空 
             var user_id = ''; 
         for(var i = 0;i<rows.length;i++) 
         { 
             if(i>0) 
             { 
                 user_id = user_id+','+rows[i].get('userId'); 
             }else{ 
                 user_id = user_id+rows[i].get('userId'); 
             } 
         } 
         //没有选择要执行操作的对象 
             if(user_id == "") 
             { 
                 Ext.Msg.alert("提示信息","请选择要删除的对象"); 
                 return ; 
             }else{ 
                 Ext.Msg.confirm("提示信息","请确定要执行删除操作吗?",function (btn){ 
                     if(btn == 'yes') 
                     { 
                         Ext.Ajax.request({ 
                             url:"../user/delAllUser.action", 
                             params:{id:user_id}, 
                             method:'post', 
                             success:function(o){ 
                                 var info = Ext.decode(o.responseText); 
                                 Ext.Msg.alert("提示信息",info.message); 
                                 store.reload(); 
                                 return ; 
                             }, 
                             failure:function(form,action){ 
                                 Ext.Msg.alert("提示信息","用户信息删除失败!"); 
                             } 
                         });     
                     } 
                 }); 
             } 
        } 
        /** 
        * 修改用户信息 
        * 参数userId:修改对象的Id 
        */ 
        function updateForm(userId) 
        { 
            editUserForm(); 
            var userForm = Ext.getCmp("editForm").getForm(); 
            Ext.Ajax.request({ 
                url:'../user/doGetOne.action', 
                params:{userId:userId}, 
                method:'post', 
                //从struts2.0里返回的参数 
                success:function(o) 
                { 
                 //读取action传递过来的对象参数 
                 //docode:解码(解析)一个JSON字符串对象 
                    var user = Ext.decode(o.responseText); 
                    //用户编辑窗口的打开 
                    editUser(user); 
                    //将对象信息显示在对应的form文本框中 
                    userForm.form.findFiled('userInfo.userId').setValue(user.userInfo.userId); 
                    userForm.form.findFiled('userInfo.userName').setValue(user.userInfo.userName); 
                    userForm.form.findFiled('userInfo.pwd').setValue(user.userInfo.pwd); 
                    userForm.form.findFiled('rPwd').setValue(user.userInfo.pwd); 
                } 
            }); 
        } 
        /** 
        * 用户信息编辑窗口 
        */ 
        function editUser(user){ 
            var userForm = Ext.getCmp("editForm").getForm(); 
            //得到用户编辑的窗口的对象 
            var editUserWin = Ext.getCmp("editWin"); 
            //当为空的时候将进行实例化 
            if(editUserWin == null) 
            { 
                editUserWin = new Ext.Window({ 
             id:'editWin', 
                width:500, 
                x:100, 
                y:100, 
                modal:true, 
                resizable:false, 
                closeAction:"hide", 
                title:'用户信息修改', 
                items:[userForm], 
                buttons:[ 
                    {text:'保存',handler:function(){ 
                        if(userForm.form.isValid()) 
                        { 
                         /** 
                         * 数据提交的第二种方式:form.doAction('submit',{}); 
                         */ 
                            userForm.form.doAction('submit',{ 
                                url:'../user/updUser.action', 
                                params:{userId:userForm.form.findField('userInfo.userId').getValue()}, 
                                method:'post', 
                                waitTitle:'提示信息', 
                                waitMsg:'数据处理中,请稍后....', 
                                //从struts2.0里不需要返回的参数 
                                success:function(form,action) 
                                { 
                                    Ext.Msg.alert("提示信息","用户信息修改成功!"); 
                                    //查询的数据集合store刷新,实现页面自动刷新的效果 
                                    store.reload(); 
                                    //将窗口关闭时候,window. hide()方法是隐藏,因此并不会真正销毁窗口对象 
                                    editUserWin.hide(); 
                                    return ; 
                                }, 
                                failure:function(form,action) 
                                { 
                                    Ext.Msg.alert("提示信息","用户信息修改失败"); 
                                    return ; 
                                } 
                            }); 
                        }else 
                        { 
                            Ext.Msg.alert("提示信息","表单有错误,请重新填写!"); 
                        } 
                    }}, 
                    {text:'关闭',handler:function(){editUserWin.hide();}}] 
             }); 
            } 
            editUserWin.show(); 
        } 
        /** 
        * 重置页面查询表单 
        */ 
        function resetForm() 
        { 
            Ext.getCmp("queryForm").getForm().reset(); 
        } 
        /** 
        * 每行单元格点击事件 
        */ 
        function renderPage(grid,rowIndex,columnIndex,e) 
        { 
         //触发事件的对象的Id 
            var id = grid.getStore().getAt(rowIndex).data['userId']; 
            switch(columuIndex) 
            { 
                case 3:delForm(id); 
                     break; 
             /** 
                *case 4:updateForm(id); 
                *     break; 
                */ 
             default:break; 
            } 
        } 
// --></script> 
    </head> 
    <body> 
        <div id="searchPanel"> 
        </div> 
        <div id="centerPanel"> 
        </div> 
        <div id="mainDiv"></div> 
    </body> 
</html>
Javascript 相关文章推荐
javascript获取ckeditor编辑器的值(实现代码)
Nov 18 Javascript
在JS中解析HTML字符串示例代码
Apr 16 Javascript
Jquery ajax加载等待执行结束再继续执行下面代码操作
Nov 24 Javascript
js仿3366小游戏选字游戏
Apr 14 Javascript
javascirpt实现2个iframe之间传值的方法
Jun 30 Javascript
jquery+css3问卷答题卡翻页动画效果示例
Oct 26 Javascript
angularjs实现简单的购物车功能
Sep 21 Javascript
vue微信分享 vue实现当前页面分享其他页面
Dec 02 Javascript
javaScript产生随机数的用法小结
Apr 21 Javascript
vue中的适配px2rem示例代码
Nov 19 Javascript
javascript利用canvas实现鼠标拖拽功能
Jul 23 Javascript
Vue自定义表单内容检查rules实例
Oct 30 Javascript
firefox和IE系列的相关区别整理 以备后用
Dec 28 #Javascript
javascript 显示当前系统时间代码
Dec 28 #Javascript
javascript 鼠标悬浮图片显示原图 移出鼠标后原图消失(多图)
Dec 28 #Javascript
javascript options属性集合操作代码
Dec 28 #Javascript
javascript 动态调整图片尺寸实现代码
Dec 28 #Javascript
jquery $(document).ready() 与window.onload的区别
Dec 28 #Javascript
jQuery的强大选择器小结
Dec 27 #Javascript
You might like
PHP中的日期处理方法集锦
2007/01/02 PHP
php压缩和解压缩字符串的方法
2015/03/14 PHP
Laravel+jQuery实现AJAX分页效果
2016/09/14 PHP
使两个iframe的高度与内容自适应,且相等
2006/11/20 Javascript
capacityFixed 基于jquery的类似于新浪微博新消息提示的定位框
2011/05/24 Javascript
关于extjs4如何获取grid修改后的数据的问题
2013/08/07 Javascript
js实现带关闭按钮始终显示在网页最底部工具条的方法
2015/03/02 Javascript
深入理解JavaScript系列(25):设计模式之单例模式详解
2015/03/03 Javascript
HTML5 Shiv完美解决IE(IE6/IE7/IE8)不兼容HTML5标签的方法
2015/11/25 Javascript
JavaScript生成带有缩进的表格代码
2016/06/15 Javascript
JS实现页面跳转参数不丢失的方法
2016/11/28 Javascript
原生js实现类似fullpage的单页/全屏滚动
2017/01/22 Javascript
jQuery tip提示插件(实例分享)
2017/04/28 jQuery
详谈js中标准for循环与foreach(for in)的区别
2017/11/02 Javascript
使用mint-ui实现省市区三级联动效果的示例代码
2018/02/09 Javascript
react-native-video实现视频全屏播放的方法
2018/03/19 Javascript
Vue 中mixin 的用法详解
2018/04/23 Javascript
ES6 中可以提升幸福度的小功能
2018/08/06 Javascript
elementUI 设置input的只读或禁用的方法
2018/10/30 Javascript
微信小程序城市选择及搜索功能的方法
2019/03/22 Javascript
vue视频播放暂停代码
2019/11/08 Javascript
Vue 使用typescript如何优雅的调用swagger API
2020/09/01 Javascript
Python可变参数函数用法实例
2015/07/07 Python
基于python中staticmethod和classmethod的区别(详解)
2017/10/24 Python
python之DataFrame实现excel合并单元格
2021/02/22 Python
CSS3 @media的基本用法总结
2019/09/10 HTML / CSS
HTML5在IE10、火狐下中文乱码问题的解决方法
2013/11/18 HTML / CSS
西班牙鞋子和箱包在线销售网站:zapatos.es
2020/02/17 全球购物
数控技术学生的自我评价
2014/02/15 职场文书
优秀党员获奖感言
2014/02/18 职场文书
保卫科工作岗位职责
2014/03/01 职场文书
中学生学雷锋演讲稿
2014/04/26 职场文书
2014年除四害工作总结
2014/12/06 职场文书
销售内勤岗位职责
2015/02/10 职场文书
Python标准库之typing的用法(类型标注)
2021/06/02 Python
《雀魂PONG☆》4月1日播出 PV角色设定情报
2022/03/20 日漫