easyui의 dataGrid 테이블 플러그인을 모방하면서 직접 캡슐화해봤습니다. 기본 json 데이터의 동적 로딩, 자동 페이징, 모두 선택 및 모두 선택 취소, 마우스 오버 시 색상 변경, 대체 라인의 색상 변경 등을 실현합니다.
Ajax 액세스가 포함되어 있으므로 효과를 보려면 iis에 배포해야 합니다. 먼저 렌더링을 보여드리겠습니다.
CSS 스타일
/* CSS Document */ body { font: 14px/1.43 "Helvetica Neue", Tahoma, "Microsoft YaHei", Arial; color: #253443; margin: 0 auto; padding: 0 auto; } table { border-collapse: collapse; border-spacing: 0; background: #FFF; font-size: 12px; width: 100%; border: 1; width: 100%; } thead { display: table-header-group; vertical-align: middle; border-color: inherit; } tr { display: table-row; vertical-align: inherit; border-color: inherit; } table thead tr { background-color: #E6F0FF; } table thead tr th { padding: 5px 8px; font-weight: normal; color: #999; border-bottom: 1px solid #B50802; vertical-align: bottom; line-height: 20px; } tbody { display: table-row-group; vertical-align: middle; border-color: inherit; } table tbody tr td { padding: 8px; border-top: 0px; border-bottom: 1px solid #DDD; vertical-align: middle; line-height: 20px; } table tfoot tr td { width: 100%; background-color: #F4F4F4; height: 20px; padding: 8px 0px; color: #000; } table tfoot tr td input { width: 30px; float: left; } table tfoot tr td span { display: inline-block; cursor: pointer; height:20px; padding:0 10px; float: left; } .mouseover { background-color: #EAF2FF; color: #000; }
JSON 파일
{ "total":16, "rows": [ { "ID": 1, "name": "公共js和公共css样式部分", "descrtion":"描述公共js和公共css样式部分", "Price": 950 }, { "ID": 2, "name": "自定义特性(如:皮肤风格选择等)部分", "descrtion":"描述自定义特性(如:皮肤风格选择等)", "Price": 5500 }, { "ID": 3, "name": "具体定义及实现部分", "descrtion":"描述具体定义及实现部分", "Price": 150 }, { "ID": 4, "name": "对外开放部分", "descrtion":"描述对外开放部分", "Price": 650 }, { "ID": 5, "name": "公共js和公共css样式部分", "descrtion":"描述公共js和公共css样式部分", "Price": 950 }, { "ID": 6, "name": "匹配所有大于给定索引值的元素", "descrtion":"描述匹配所有大于给定索引值的元素", "Price": 5500 }, { "ID": 7, "name": "查找第二第三行,即索引值是1和2,也就是比0大", "descrtion":"描述查找第二第三行,即索引值是1和2,也就是比0大", "Price": 150 }, { "ID": 8, "name": "从 0 开始计数", "descrtion":"从 0 开始计数", "Price": 650 }, { "ID": 9, "name": "公共js和公共css样式部分", "descrtion":"描述公共js和公共css样式部分", "Price": 950 }, { "ID": 10, "name": "自定义特性(如:皮肤风格选择等)部分", "descrtion":"描述自定义特性(如:皮肤风格选择等)", "Price": 5500 }, { "ID": 11, "name": "具体定义及实现部分", "descrtion":"描述具体定义及实现部分", "Price": 150 }, { "ID": 12, "name": "对外开放部分", "descrtion":"描述对外开放部分", "Price": 650 }, { "ID": 13, "name": "公共js和公共css样式部分", "descrtion":"描述公共js和公共css样式部分", "Price": 950 }, { "ID": 14, "name": "匹配所有大于给定索引值的元素", "descrtion":"描述匹配所有大于给定索引值的元素", "Price": 5500 }, { "ID": 15, "name": "查找第二第三行,即索引值是1和2,也就是比0大", "descrtion":"描述查找第二第三行,即索引值是1和2,也就是比0大", "Price": 150 }, { "ID": 16, "name": "从 0 开始计数", "descrtion":"从 0 开始计数", "Price": 650 } ] }
jquery 코드
// JavaScript Document $(function () { var dataGrid = function (ele, opt) { this.defaults = { //id id: "", //请求url url: null, //表头格式 columns: null, //是否分页 pagination: false, //是否隔行变色 isoddcolor: false, //是否搜索栏 searchnation:false, //页显示 pagesize: 5, //页索引 pageindex: 1, //总页数 totalpage: null } this.settings = $.extend({}, this.defaults, opt); } dataGrid.prototype = { _id:null, _op:null, init: function () { this._id=this.settings.id; _op=this; this.create(); this.bindEvent(); }, create: function () { //初始化元素 this.InitializeElement(); //初始化表头 this.createTableHead(); //初始化动态行 this.createTableBody(1); //初始化搜索框 //if(this.settings.searchnation) this.createsearchbox(); //选择是否分页 if (this.settings.pagination) this.createTableFoot(); }, bindEvent: function () { //添加上一页事件 this.registerUpPage(); //添加下一页事件 this.registerNextPage(); //添加首页事件 this.registerFirstPage(); //添加最后一页事件 this.registerlastPage(); //添加跳转事件 this.registerSkipPage(); //添加鼠标悬浮事件 this.registermousehover(); //添加隔行变色 this.registerchangebgcolor(); //添加全选全不选事件 this.registercheckall(); }, //初始化元素 InitializeElement: function () { //var id = this.settings.id; $("#"+this._id).empty().append("<thead><tr></tr></thead><tbody></tbody><TFOOT></TFOOT>"); }, //循环添加表头 createTableHead: function () { var headcols = this.settings.columns; for (var i = 0; i < headcols.length; i++) { if (headcols[i].field == 'ck') $("table[id='" + this._id + "'] thead tr").append("<th width='50px'><input name='chkall' type='checkbox'></th>"); else $("table[id='" + this._id + "'] thead tr").append("<th width=" + headcols[i].width + " align=" + headcols[i].align + ">" + headcols[i].title + "</th>"); } }, //循环添加行 createTableBody: function (pn) { var columns = _op.settings.columns; var json = this.getAjaxDate( _op.settings.url, null); //总页数=向上取整(总数/每页数) _op.settings.totalpage = Math.ceil((json.total) / _op.settings.pagesize); //开始页数 var startPage = _op.settings.pagesize * (pn - 1); //结束页数 var endPage = startPage + _op.settings.pagesize; var rowsdata = ""; for (var row = startPage; row < endPage; row++) { if (row == json.rows.length) break; rowsdata += "<tr>"; for (var colindex = 0; colindex < columns.length; colindex++) { if (columns[colindex].field == 'ck') rowsdata += '<td width="50px" align="center"><input name="chk" type="checkbox"></td>' else rowsdata += '<td width=' + columns[colindex].width + ' align=' + columns[colindex].align + '>' + json.rows[row][columns[colindex].field] + '</td>'; } rowsdata += "</tr>"; } $("table[id='" + this._id + "'] tbody").empty().append(rowsdata); $("#currentpageIndex").html(pn); this.registermousehover(); }, //初始化分页 createTableFoot: function () { var footHtml = "<tr><td>"; footHtml += "<span id='countPage'>第<font id='currentpageIndex'>1</font>/" + _op.settings.totalpage + "页</span>"; footHtml += "<span id='firstPage'>首页</span>"; footHtml += "<span id='UpPage'>上一页</span>"; footHtml += "<span id='nextPage'>下一页</span>"; footHtml += "<span id='lastPage'>末页</span>"; footHtml += "<input type='text'/><span id='skippage'>跳转</span>"; footHtml += "</td></tr>"; $("table[id='" + this._id + "'] tfoot").append(footHtml); $("table[id='" + this._id + "'] tfoot tr td").attr("colspan", "5"); }, //添加鼠标悬浮事件 registermousehover: function () { //添加鼠标悬浮事件 $("table[id='" + this._id + "'] tbody tr").mouseover(function () { $(this).addClass("mouseover"); }).mouseleave(function () { $(this).removeClass("mouseover"); }); }, //添加隔行变色事件 registerchangebgcolor: function () { //添加隔行变色 if (this.settings.isoddcolor) $("table[id='" + this._id + "'] tr:odd").css("background-color", "#A77C7B").css("color", "#fff"); }, //添加全选全不选事件 registercheckall: function () { //添加全选全不选事件 $("input[name='chkall']").click(function () { if (this.checked) { $("input[name='chk']").each(function () { $(this).attr("checked", true); }); } else { $("input[name='chk']").each(function () { $(this).attr("checked", false); }); } }); }, //添加首页事件 registerFirstPage: function () { $("#firstPage").click(function(){ _op.settings.pageindex = 1; _op.createTableBody( _op.settings.pageindex); }); }, //添加上一页事件 registerUpPage: function () { $("table").delegate("#UpPage", "click", function () { if ( _op.settings.pageindex == 1) { alert("已经是第一页了"); return; } _op.settings.pageindex = _op.settings.pageindex - 1; _op.createTableBody(_op.settings.pageindex); }); }, //添加下一页事件 registerNextPage: function () { $("table").delegate("#nextPage", "click", function () { if (_op.settings.pageindex == _op.settings.totalpage) { alert("已经是最后一页了"); return; } _op.settings.pageindex = _op.settings.pageindex + 1; _op.createTableBody(_op.settings.pageindex); }); }, //添加尾页事件 registerlastPage: function () { $("table").delegate("#lastPage", "click", function () { _op.settings.pageindex = _op.settings.totalpage; _op.createTableBody( _op.settings.totalpage); }); }, //添加页数跳转事件 registerSkipPage: function () { $("table").delegate("#skippage", "click", function () { var value = $("table[id='" + this._id + "'] tfoot tr td input").val(); if (!isNaN(parseInt(value))) { if (parseInt(value) <= _op.settings.totalpage) _op.createTableBody(parseInt(value)); else alert("超出页总数"); } else alert("请输入数字"); }); }, //添加异步ajax事件 getAjaxDate: function (url, parms) { //定义一个全局变量来接受$post的返回值 var result; //用ajax的同步方式 $.ajax({ url: url, async: false, //改为同步方式 data: parms, success: function (data) { result = data; } }); return result; } } $.fn.grid = function (options) { var grid = new dataGrid(this, options); return this.each(function () { grid.init(); }); } })
html 호출
<!doctype html> <html> <head> <meta charset="utf-8"> <title>无标题文档</title> <script src="jquery-1.8.0.min.js"></script> <link rel="stylesheet" type="text/css" href="style.css"> <script src="pagetion.js"></script> <script type="text/javascript"> $(function(){ $("#dg").grid({ id:"dg", url:"data.json", columns: [ {field:'ck',checkbox:true}, { field: 'ID', title: '编号', width:100, align: 'center'}, { field: 'name', title: '名称', width: 150, align: 'left' }, { field: 'descrtion', title: '描述', width: 350, align: 'left' }, { field: 'Price', title: '价格', width: 100, align: 'left' } ], isoddcolor:false, pagination:true, searchnation:true, pagesize:5 }); }); </script> </head> <body> <form id="form1"> <table id="dg"> </table> </form> </body> </html>
이 기사에서는 프레임워크와 아이디어만 제공합니다. 이러한 지식 포인트를 서로 연결하려면 신중하게 연구하고 자신만의 jquery 테이블 플러그인을 만들어야 합니다.

Python과 JavaScript의 주요 차이점은 유형 시스템 및 응용 프로그램 시나리오입니다. 1. Python은 과학 컴퓨팅 및 데이터 분석에 적합한 동적 유형을 사용합니다. 2. JavaScript는 약한 유형을 채택하며 프론트 엔드 및 풀 스택 개발에 널리 사용됩니다. 두 사람은 비동기 프로그래밍 및 성능 최적화에서 고유 한 장점을 가지고 있으며 선택할 때 프로젝트 요구 사항에 따라 결정해야합니다.

Python 또는 JavaScript를 선택할지 여부는 프로젝트 유형에 따라 다릅니다. 1) 데이터 과학 및 자동화 작업을 위해 Python을 선택하십시오. 2) 프론트 엔드 및 풀 스택 개발을 위해 JavaScript를 선택하십시오. Python은 데이터 처리 및 자동화 분야에서 강력한 라이브러리에 선호되는 반면 JavaScript는 웹 상호 작용 및 전체 스택 개발의 장점에 없어서는 안될 필수입니다.

파이썬과 자바 스크립트는 각각 고유 한 장점이 있으며 선택은 프로젝트 요구와 개인 선호도에 따라 다릅니다. 1. Python은 간결한 구문으로 데이터 과학 및 백엔드 개발에 적합하지만 실행 속도가 느립니다. 2. JavaScript는 프론트 엔드 개발의 모든 곳에 있으며 강력한 비동기 프로그래밍 기능을 가지고 있습니다. node.js는 풀 스택 개발에 적합하지만 구문은 복잡하고 오류가 발생할 수 있습니다.

javaScriptisNotBuiltoncorc; it'SangretedLanguageThatrunsonOngineStenWrittenInc .1) javaScriptWasDesignEdasAlightweight, 해석 hanguageforwebbrowsers.2) Endinesevolvedfromsimpleplemporectreterstoccilpilers, 전기적으로 개선된다.

JavaScript는 프론트 엔드 및 백엔드 개발에 사용할 수 있습니다. 프론트 엔드는 DOM 작업을 통해 사용자 경험을 향상시키고 백엔드는 Node.js를 통해 서버 작업을 처리합니다. 1. 프론트 엔드 예 : 웹 페이지 텍스트의 내용을 변경하십시오. 2. 백엔드 예제 : node.js 서버를 만듭니다.

Python 또는 JavaScript는 경력 개발, 학습 곡선 및 생태계를 기반으로해야합니다. 1) 경력 개발 : Python은 데이터 과학 및 백엔드 개발에 적합한 반면 JavaScript는 프론트 엔드 및 풀 스택 개발에 적합합니다. 2) 학습 곡선 : Python 구문은 간결하며 초보자에게 적합합니다. JavaScript Syntax는 유연합니다. 3) 생태계 : Python에는 풍부한 과학 컴퓨팅 라이브러리가 있으며 JavaScript는 강력한 프론트 엔드 프레임 워크를 가지고 있습니다.

JavaScript 프레임 워크의 힘은 개발 단순화, 사용자 경험 및 응용 프로그램 성능을 향상시키는 데 있습니다. 프레임 워크를 선택할 때 : 1. 프로젝트 규모와 복잡성, 2. 팀 경험, 3. 생태계 및 커뮤니티 지원.

서론 나는 당신이 이상하다는 것을 알고 있습니다. JavaScript, C 및 Browser는 정확히 무엇을해야합니까? 그들은 관련이없는 것처럼 보이지만 실제로는 현대 웹 개발에서 매우 중요한 역할을합니다. 오늘 우리는이 세 가지 사이의 밀접한 관계에 대해 논의 할 것입니다. 이 기사를 통해 브라우저에서 JavaScript가 어떻게 실행되는지, 브라우저 엔진의 C 역할 및 웹 페이지의 렌더링 및 상호 작용을 유도하기 위해 함께 작동하는 방법을 알게됩니다. 우리는 모두 JavaScript와 브라우저의 관계를 알고 있습니다. JavaScript는 프론트 엔드 개발의 핵심 언어입니다. 브라우저에서 직접 실행되므로 웹 페이지를 생생하고 흥미롭게 만듭니다. 왜 Javascr


핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

Video Face Swap
완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

인기 기사

뜨거운 도구

맨티스BT
Mantis는 제품 결함 추적을 돕기 위해 설계된 배포하기 쉬운 웹 기반 결함 추적 도구입니다. PHP, MySQL 및 웹 서버가 필요합니다. 데모 및 호스팅 서비스를 확인해 보세요.

Atom Editor Mac 버전 다운로드
가장 인기 있는 오픈 소스 편집기

DVWA
DVWA(Damn Vulnerable Web App)는 매우 취약한 PHP/MySQL 웹 애플리케이션입니다. 주요 목표는 보안 전문가가 법적 환경에서 자신의 기술과 도구를 테스트하고, 웹 개발자가 웹 응용 프로그램 보안 프로세스를 더 잘 이해할 수 있도록 돕고, 교사/학생이 교실 환경 웹 응용 프로그램에서 가르치고 배울 수 있도록 돕는 것입니다. 보안. DVWA의 목표는 다양한 난이도의 간단하고 간단한 인터페이스를 통해 가장 일반적인 웹 취약점 중 일부를 연습하는 것입니다. 이 소프트웨어는

WebStorm Mac 버전
유용한 JavaScript 개발 도구

에디트플러스 중국어 크랙 버전
작은 크기, 구문 강조, 코드 프롬프트 기능을 지원하지 않음