基于jQuery的动态增删改查表格信息,可左键/右键提示(原创自Zjmainstay)


Posted in Javascript onJuly 31, 2012

在线演示: http://demo.3water.com/js/2012/jqueryAutoAddDeleteTableTr/jqueryAutoAddDeleteTableTr_leftClick.html
//左键 

<html> 
<head> 
<title>jQuery 动态增删表格</title> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
<meta http-equiv="Content-Language" content="zh-CN" /> 
<script type="text/javascript" src="http://demo.3water.com/jslib/jquery/jquery-1.6.2.min.js"></script> 
</head> 
<body> 
<script type="text/javascript"> 
$(document).ready(function(){ 
var addToTrTop = 10; 
var addToTrLeft = 534; 
var preEdit = null; 
var inputData = '<input id="tmpEditor" type="text" value="?"></input>'; 
var bindListening = function(){ 
//表格点击响应 
$("td").unbind().click(function(){ 
var tdData = $("#tmpEditor").val(); 
if( !$(this).parent().hasClass('editting')) { 
preEdit&&preEdit.empty().html(tdData.trim(' ')); 
preEdit = null; 
$("#tmpEditor").parent().empty().html($("#tmpEditor").val()); 
$(".editting").removeClass('editting'); 
}else if( preEdit && (preEdit.parent().children().index($(preEdit)) != $(this).parent().children().index($(this))) ){ 
preEdit.empty().html(tdData.trim(' ')); 
preEdit = null; 
}else{ 
if(!$("#tmpEditor").val()) { 
preEdit = $(this); 
var tdData = $(this).html(); 
$(this).empty().append(inputData.replace('?',tdData)); 
$("#tmpEditor").focus(); 
} 
} 
if(!$(this).parent().hasClass('editting')){ 
var tipStyle = 'top:'+(parseInt($(this).offset().top)+addToTrTop)+'px;left:'+(parseInt($(this).parent().offset().left)+addToTrLeft)+'px;'; 
$("#clickTips").attr('style',tipStyle).show(); 
} 
bindListening(); 
}); 
//向上增加一行 
$("#addUp").unbind().click(function(){ 
doAddTrData($(this),'up'); 
bindListening(); 
}); 
//向下增加一行 
$("#addDown").unbind().click(function(){ 
doAddTrData($(this),'down'); 
bindListening(); 
}); 
//删除当前行 
$("#delete").unbind().click(function(){ 
doDeleteTrData($(this),'delete'); 
bindListening(); 
}); 
//编辑当前行 
$("#edit").unbind().click(function(){ 
doEditTrData($(this),'edit'); 
bindListening(); 
}); 
var addTrData = $("tr:first").clone(true).attr('class','newAdd'); 
var getIndex = function(clickedTd,type){ 
var fields = $("tr"); 
var addIndex = -1; 
for(var i=1;i<fields.length;i++){ 
var tipStyle = clickedTd.parent().attr('style'); 
var topValue = 'top: '+(parseInt(fields.eq(i).offset().top)+addToTrTop); 
var ie_topValue = 'top: '+(parseInt(fields.eq(i).offset().top)+(addToTrTop-2)); 
if((tipStyle.indexOf(topValue) != -1) || (tipStyle.indexOf(ie_topValue) != -1)) { 
switch(type.toLowerCase()){ 
case 'up': 
addIndex = i-1; 
break; 
case 'down': 
case 'edit': 
case 'delete': 
addIndex = i; 
break; 
} 
} 
} 
return addIndex; 
} 
var doAddTrData = function(clickedTd,type){ 
if(getIndex(clickedTd,type) == -1) return false; 
else { 
var index=getIndex(clickedTd,type); 
} 
$("table tr").eq(index).after(addTrData); 
setTimeout('$(".newAdd").attr("class",null)',1000); 
$("#clickTips").hide(); 
return false; 
} 
var doDeleteTrData = function(clickedTd,type){ 
if(getIndex(clickedTd,type) == -1) return false; 
else { 
var index=getIndex(clickedTd,type); 
} 
$("table tr").eq(index).remove(); 
$("#clickTips").hide(); 
return false; 
} 
var doEditTrData = function(clickedTd,type){ 
if(getIndex(clickedTd,type) == -1) return false; 
else { 
var index=getIndex(clickedTd,type); 
} 
$("table tr").eq(index).addClass('editting'); 
$("#clickTips").hide(); 
return false; 
} 
} 
bindListening(); 
}); 
</script> 
<style type="text/css"> 
table{ 
width:580px; 
margin:0 auto; 
} 
td,#tmpEditor{ 
display:block; 
float:left; 
border:1px solid #000000; 
margin:auto 0.5px; 
width:60px; 
height:20px; 
} 
#clickTips{ 
border:1px solid #000000; 
position:absolute; 
left:3px; 
width:120px; 
padding:3px; 
display:none; 
background-color:#F5FFFA; 
z-index:3; 
} 
span{ 
float:left; 
width:100px; 
height:20px; 
clear:both; 
} 
.cloneTr{ 
display:none; 
} 
.newAdd td{ 
background-color:#FFFACD; 
} 
.editting td{ 
background-color:#F0F0F0; 
} 
</style> 
<div id="tableContainer"> 
<table> 
<tr class="cloneTr"> 
<td> </td> 
<td> </td> 
<td> </td> 
<td> </td> 
<td> </td> 
<td> </td> 
<td> </td> 
<td> </td> 
</tr> 
<tr> 
<td> </td> 
<td> </td> 
<td> </td> 
<td> </td> 
<td> </td> 
<td> </td> 
<td> </td> 
<td>1</td> 
</tr> 
<tr> 
<td> </td> 
<td> </td> 
<td> </td> 
<td> </td> 
<td> </td> 
<td> </td> 
<td> </td> 
<td>2</td> 
</tr> 
<tr> 
<td> </td> 
<td> </td> 
<td> </td> 
<td> </td> 
<td> </td> 
<td> </td> 
<td> </td> 
<td>3</td> 
</tr> 
<tr> 
<td> </td> 
<td> </td> 
<td> </td> 
<td> </td> 
<td> </td> 
<td> </td> 
<td> </td> 
<td>4</td> 
</tr> 
<tr> 
<td> </td> 
<td> </td> 
<td> </td> 
<td> </td> 
<td> </td> 
<td> </td> 
<td> </td> 
<td>5</td> 
</tr> 
<tr> 
<td> </td> 
<td> </td> 
<td> </td> 
<td> </td> 
<td> </td> 
<td> </td> 
<td> </td> 
<td>6</td> 
</tr> 
</table> 
</div> 
<div id="clickTips"> 
<span id="addUp">向上增加一行</span> 
<span id="edit">修改当前一行</span> 
<span id="addDown">向下增加一行</span> 
<span id="delete">删除当前行</span> 
</div> 
</body> 
</html>

jqueryAutoAddDeleteTableTr_rightClick.html
//右键(含屏蔽浏览器右键功能)
<html> 
<head> 
<title>jQuery 动态增删表格</title> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
<meta http-equiv="Content-Language" content="zh-CN" /> 
<script type="text/javascript" src="http://demo.3water.com/jslib/jquery/jquery-1.6.2.min.js"></script> 
</head> 
<body> 
<script type="text/javascript"> 
$(document).ready(function(){ 
var addToTrTop = 10; 
var addToTrLeft = 60; 
var preEdit = null; 
var inputData = '<input id="tmpEditor" type="text" value="?"></input>'; 
var bindListening = function(){ 
//屏蔽浏览器右键 
if (window.Event) document.captureEvents(Event.MOUSEUP); 
function nocontextmenu(e){ 
if(!e) var e=window.event; 
e.cancelBubble = true 
e.returnValue = false; 
return false; 
} 
function norightclick(e){ 
if(!e) var e=window.event; 
if (window.Event){ 
if (e.which == 2 || e.which == 3) 
return false; 
}else if (e.keyCode == 2 || e.keyCode == 3){ 
e.cancelBubble = true 
e.returnValue = false; 
return false; 
} 
} 
document.oncontextmenu = nocontextmenu; // for IE5+ 
document.onmousedown = norightclick; // for all others 
//End 屏蔽浏览器右键 
//表格右键响应 
$("td").mousedown(function(e){ 
var code; 
if(!e) var e=window.event; 
if(e.keyCode) { 
code=e.keyCode; 
}else if(e.which){ 
code = e.which; 
} 
var tdData = $("#tmpEditor").val(); 
if(code == 3){ 
var tipStyle = 'top:'+(parseInt($(this).offset().top)+addToTrTop)+'px;left:'+(parseInt($(this).offset().left)+addToTrLeft)+'px;'; 
$("#clickTips").attr('style',tipStyle).show(); 
return false; 
} 
if(code == 1){ 
if( !$(this).parent().hasClass('editting')) { 
preEdit&&preEdit.empty().html(tdData.trim(' ')); 
preEdit = null; 
$("#tmpEditor").parent().empty().html($("#tmpEditor").val()); 
$(".editting").removeClass('editting'); 
}else if( preEdit && (preEdit.parent().children().index($(preEdit)) != $(this).parent().children().index($(this))) ){ 
preEdit.empty().html(tdData.trim(' ')); 
preEdit = null; 
}else{ 
if(!$("#tmpEditor").val()) { 
preEdit = $(this); 
var tdData = $(this).html(); 
$(this).empty().append(inputData.replace('?',tdData)); 
$("#tmpEditor").focus(); 
} 
} 
return false; 
} 
bindListening(); 
}); //End 表格右键响应 
//向上增加一行 
$("#addUp").unbind().click(function(){ 
doAddTrData($(this),'up'); 
bindListening(); 
}); 
//向下增加一行 
$("#addDown").unbind().click(function(){ 
doAddTrData($(this),'down'); 
bindListening(); 
}); 
//删除当前行 
$("#delete").unbind().click(function(){ 
doDeleteTrData($(this),'delete'); 
bindListening(); 
}); 
//编辑当前行 
$("#edit").unbind().click(function(){ 
doEditTrData($(this),'edit'); 
bindListening(); 
}); 
var addTrData = $("tr:first").clone(true).attr('class','newAdd'); 
var getIndex = function(clickedTd,type){ 
var fields = $("tr"); 
var addIndex = -1; 
for(var i=1;i<fields.length;i++){ 
var tipStyle = clickedTd.parent().attr('style'); 
var topValue = 'top: '+(parseInt(fields.eq(i).offset().top)+addToTrTop); 
var ie_topValue = 'top: '+(parseInt(fields.eq(i).offset().top)+(addToTrTop-2)); 
if((tipStyle.indexOf(topValue) != -1) || (tipStyle.indexOf(ie_topValue) != -1)) { 
switch(type.toLowerCase()){ 
case 'up': 
addIndex = i-1; 
break; 
case 'down': 
case 'edit': 
case 'delete': 
addIndex = i; 
break; 
} 
} 
} 
return addIndex; 
} 
var doAddTrData = function(clickedTd,type){ 
if(getIndex(clickedTd,type) == -1) return false; 
else { 
var index=getIndex(clickedTd,type); 
} 
$("table tr").eq(index).after(addTrData); 
setTimeout('$(".newAdd").attr("class",null)',1000); 
$("#clickTips").hide(); 
return false; 
} 
var doDeleteTrData = function(clickedTd,type){ 
if(getIndex(clickedTd,type) == -1) return false; 
else { 
var index=getIndex(clickedTd,type); 
} 
$("table tr").eq(index).remove(); 
$("#clickTips").hide(); 
return false; 
} 
var doEditTrData = function(clickedTd,type){ 
if(getIndex(clickedTd,type) == -1) return false; 
else { 
var index=getIndex(clickedTd,type); 
} 
$("table tr").eq(index).addClass('editting'); 
$("#clickTips").hide(); 
return false; 
} 
} 
bindListening(); 
}); 
</script> 
<style type="text/css"> 
table{ 
width:580px; 
margin:0 auto; 
} 
td,#tmpEditor{ 
display:block; 
float:left; 
border:1px solid #000000; 
margin:auto 0.5px; 
width:60px; 
height:20px; 
} 
#clickTips{ 
border:1px solid #000000; 
position:absolute; 
left:3px; 
width:120px; 
padding:3px; 
display:none; 
background-color:#F5FFFA; 
z-index:3; 
} 
span{ 
float:left; 
width:100px; 
height:20px; 
clear:both; 
} 
.cloneTr{ 
display:none; 
} 
.newAdd td{ 
background-color:#FFFACD; 
} 
.editting td{ 
background-color:#F0F0F0; 
} 
</style> 
<div id="tableContainer"> 
<table> 
<tr class="cloneTr"> 
<td> </td> 
<td> </td> 
<td> </td> 
<td> </td> 
<td> </td> 
<td> </td> 
<td> </td> 
<td> </td> 
</tr> 
<tr> 
<td> </td> 
<td> </td> 
<td> </td> 
<td> </td> 
<td> </td> 
<td> </td> 
<td> </td> 
<td>1</td> 
</tr> 
<tr> 
<td> </td> 
<td> </td> 
<td> </td> 
<td> </td> 
<td> </td> 
<td> </td> 
<td> </td> 
<td>2</td> 
</tr> 
<tr> 
<td> </td> 
<td> </td> 
<td> </td> 
<td> </td> 
<td> </td> 
<td> </td> 
<td> </td> 
<td>3</td> 
</tr> 
<tr> 
<td> </td> 
<td> </td> 
<td> </td> 
<td> </td> 
<td> </td> 
<td> </td> 
<td> </td> 
<td>4</td> 
</tr> 
<tr> 
<td> </td> 
<td> </td> 
<td> </td> 
<td> </td> 
<td> </td> 
<td> </td> 
<td> </td> 
<td>5</td> 
</tr> 
<tr> 
<td> </td> 
<td> </td> 
<td> </td> 
<td> </td> 
<td> </td> 
<td> </td> 
<td> </td> 
<td>6</td> 
</tr> 
</table> 
</div> 
<div id="clickTips"> 
<span id="addUp">向上增加一行</span> 
<span id="edit">修改当前一行</span> 
<span id="addDown">向下增加一行</span> 
<span id="delete">删除当前行</span> 
</div> 
</body> 
</html>

jqueryAutoAddDeleteTableTr_leftClick_addsearch.html
//左键添加查询功能
<html> 
<head> 
<title>jQuery 动态增删表格</title> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
<meta http-equiv="Content-Language" content="zh-CN" /> 
<script type="text/javascript" src="http://demo.3water.com/jslib/jquery/jquery-1.6.2.min.js"></script> 
</head> 
<body> 
<script type="text/javascript"> 
$(document).ready(function(){ 
var addToTrTop = 10; 
var addToTrLeft = 534; 
var addToTdLeft = 60; //若设置addToTdLeft则addToTrLeft失效 
var preEdit = null; 
var inputData = '<input id="tmpEditor" type="text" value="?"></input>'; 
var bindListening = function(){ 
//表格点击响应 
$("td").unbind().click(function(){ 
if($(this).hasClass('search')) return false; 
var tdData = $("#tmpEditor").val(); 
if( !$(this).parent().hasClass('editting')) { 
preEdit&&preEdit.empty().html(tdData.trim(' ')); 
preEdit = null; 
$("#tmpEditor").parent().empty().html($("#tmpEditor").val()); 
$(".editting").removeClass('editting'); 
}else if( preEdit && (preEdit.parent().children().index($(preEdit)) != $(this).parent().children().index($(this))) ){ 
preEdit.empty().html(tdData.trim(' ')); 
preEdit = null; 
}else{ 
if(!$("#tmpEditor").val()) { 
preEdit = $(this); 
var tdData = $(this).html(); 
$(this).empty().append(inputData.replace('?',tdData)); 
$("#tmpEditor").focus(); 
} 
} 
if(!$(this).parent().hasClass('editting')){ 
if(!addToTdLeft){ 
var offsetLeft = (parseInt($(this).parent().offset().left)+addToTrLeft); 
}else { 
var offsetLeft = (parseInt($(this).offset().left)+addToTdLeft); 
} 
var tipStyle = 'top:'+(parseInt($(this).offset().top)+addToTrTop)+'px;left:'+offsetLeft+'px;'; 
$("#clickTips").attr('style',tipStyle).show(); 
} 
bindListening(); 
}); 
//向上增加一行 
$("#addUp").unbind().click(function(){ 
doAddTrData($(this),'up'); 
bindListening(); 
}); 
//向下增加一行 
$("#addDown").unbind().click(function(){ 
doAddTrData($(this),'down'); 
bindListening(); 
}); 
//删除当前行 
$("#delete").unbind().click(function(){ 
doDeleteTrData($(this),'delete'); 
bindListening(); 
}); 
//编辑当前行 
$("#edit").unbind().click(function(){ 
doEditTrData($(this),'edit'); 
bindListening(); 
}); 
//查询操作 
$("#searchButton").click(function(){ 
$("#clickTips").hide(); 
var trs = $("#tableContainer").find("tr"); 
var tdLength = trs.eq(0).children('td').length; 
var RegExp = ''; 
for(var i=0;i<tdLength;i++){ 
RegExp += '[^,]*'+trs.eq(1).find('input').eq(i).val()+'[^,]*,'; 
} 
//不加eval则正则匹配失效 
RegExp = eval('/' + RegExp.substr(0,RegExp.length-1) + '/i'); 
var stringObject = []; 
for(var i=2;i<trs.length;i++){ 
stringObject[i] = ''; 
for(var j=0;j<tdLength;j++){ 
stringObject[i] += trs.eq(i).find('td').eq(j).html()+','; 
} 
stringObject[i] = stringObject[i].substr(0,stringObject[i].length-1).toString(); 
} 
for(var i=2;i<trs.length;i++){ 
if(stringObject[i].search(RegExp)) { 
trs.eq(i).hide(); 
}else{ 
trs.eq(i).show(); 
} 
} 
bindListening(); 
}); 
var addTrData = $("tr:first").clone(true).attr('class','newAdd'); 
var getIndex = function(clickedTd,type){ 
var fields = $("tr"); 
var addIndex = -1; 
for(var i=1;i<fields.length;i++){ 
var tipStyle = clickedTd.parent().attr('style'); 
var topValue = 'top: '+(parseInt(fields.eq(i).offset().top)+addToTrTop); 
var ie_topValue = 'top: '+(parseInt(fields.eq(i).offset().top)+(addToTrTop-2)); 
if((tipStyle.indexOf(topValue) != -1) || (tipStyle.indexOf(ie_topValue) != -1)) { 
switch(type.toLowerCase()){ 
case 'up': 
addIndex = i-1; 
break; 
case 'down': 
case 'edit': 
case 'delete': 
addIndex = i; 
break; 
} 
} 
} 
return addIndex; 
} 
$("#clearSearchButton").click(function(){ 
$("#clickTips").hide(); 
$(".search input[type=text]").val(''); 
$("tr").show(); 
$("tr.cloneTr").hide(); 
}) 
var doAddTrData = function(clickedTd,type){ 
if(getIndex(clickedTd,type) == -1) return false; 
else { 
var index=getIndex(clickedTd,type); 
} 
$("table tr").eq(index).after(addTrData); 
setTimeout('$(".newAdd").attr("class",null)',1000); 
$("#clickTips").hide(); 
return false; 
} 
var doDeleteTrData = function(clickedTd,type){ 
if(getIndex(clickedTd,type) == -1) return false; 
else { 
var index=getIndex(clickedTd,type); 
} 
$("table tr").eq(index).remove(); 
$("#clickTips").hide(); 
return false; 
} 
var doEditTrData = function(clickedTd,type){ 
if(getIndex(clickedTd,type) == -1) return false; 
else { 
var index=getIndex(clickedTd,type); 
} 
$("table tr").eq(index).addClass('editting'); 
$("#clickTips").hide(); 
return false; 
} 
} 
bindListening(); 
}); 
</script> 
<style type="text/css"> 
table{ 
margin:0 auto; 
} 
td,#tmpEditor{ 
display:block; 
float:left; 
border:1px solid #000000; 
margin:auto 0.5px; 
width:60px; 
height:20px; 
} 
#clickTips{ 
border:1px solid #000000; 
position:absolute; 
left:3px; 
width:120px; 
padding:3px; 
display:none; 
background-color:#F5FFFA; 
z-index:3; 
} 
span{ 
float:left; 
width:100px; 
height:20px; 
clear:both; 
} 
.cloneTr{ 
display:none; 
} 
.newAdd td{ 
background-color:#FFFACD; 
} 
.editting td{ 
background-color:#F0F0F0; 
} 
.search{ 
background-color:#dddccc; 
} 
.search input{ 
padding-bottom: 0; 
padding-right: 7px; 
} 
.searchButtonTd{ 
float:left; 
} 
#searchButton,#clearSearchButton{ 
margin-left: -2px; 
margin-top: -2px; 
padding-bottom: 0; 
padding-right: 20px; 
} 
</style> 
<div id="tableContainer"> 
<table> 
<tr class="cloneTr"> 
<td> </td> 
<td> </td> 
<td> </td> 
<td> </td> 
<td> </td> 
<td> </td> 
<td> </td> 
<td> </td> 
</tr> 
<tr> 
<td class="search"><input type="text" size="6"/></td> 
<td class="search"><input type="text" size="6"/></td> 
<td class="search"><input type="text" size="6"/></td> 
<td class="search"><input type="text" size="6"/></td> 
<td class="search"><input type="text" size="6"/></td> 
<td class="search"><input type="text" size="6"/></td> 
<td class="search"><input type="text" size="6"/></td> 
<td class="search"><input type="text" size="6"/></td> 
<td class="search searchButtonTd"><input id="searchButton" type="button" size="10" value="查询"/></td> 
<td class="search searchButtonTd"><input id="clearSearchButton" type="button" size="10" value="清除"/></td> 
</tr> 
<tr> 
<td>1</td> 
<td>2</td> 
<td>3</td> 
<td>4</td> 
<td>5</td> 
<td>6</td> 
<td>7</td> 
<td>8</td> 
</tr> 
<tr> 
<td>a</td> 
<td>b</td> 
<td>c</td> 
<td>d</td> 
<td>e</td> 
<td>f</td> 
<td>g</td> 
<td>h</td> 
</tr> 
<tr> 
<td>A</td> 
<td>B</td> 
<td>C</td> 
<td>D</td> 
<td>E</td> 
<td>F</td> 
<td>G</td> 
<td>H</td> 
</tr> 
<tr> 
<td>aa</td> 
<td>bb</td> 
<td>cc</td> 
<td>dd</td> 
<td>ee</td> 
<td>ff</td> 
<td>gg</td> 
<td>hh</td> 
</tr> 
<tr> 
<td>111</td> 
<td>222</td> 
<td>333</td> 
<td>444</td> 
<td>555</td> 
<td>666</td> 
<td>777</td> 
<td>888</td> 
</tr> 
<tr> 
<td>1a</td> 
<td>2b</td> 
<td>3c</td> 
<td>4d</td> 
<td>5e</td> 
<td>6f</td> 
<td>7g</td> 
<td>8h</td> 
</tr> 
</table> 
</div> 
<div id="clickTips"> 
<span id="addUp">向上增加一行</span> 
<span id="edit">修改当前一行</span> 
<span id="addDown">向下增加一行</span> 
<span id="delete">删除当前行</span> 
</div> 
</body> 
</html>

PS:
var addToTrTop = 10;
var addToTrLeft = 534;

var addToTdLeft = 60; //若设置addToTdLeft则addToTrLeft失效

表示提示DIV clickTips距离当前tr顶部和左部的偏移量,可自行修改,可为负数表示上移或左移。

软件下载:下载
作者:Zjmainstay


出处:http://www.cnblogs.com/Zjmainstay/

Javascript 相关文章推荐
Javascript的一种模块模式
Mar 22 Javascript
javascript使用输出语句实现网页特效代码
Aug 06 Javascript
JavaScript生成SQL查询表单的方法
Aug 13 Javascript
jQuery获取attr()与prop()属性值的方法及区别介绍
Jul 06 Javascript
JavaScript中最常用的10种代码简写技巧总结
Jun 28 Javascript
通过vue-cli来学习修改Webpack多环境配置和发布问题
Dec 22 Javascript
vue.js的computed,filter,get,set的用法及区别详解
Mar 08 Javascript
微信小程序实现通过js操作wxml的wxss属性示例
Dec 06 Javascript
[jQuery] 事件和动画详解
Mar 05 jQuery
Vue+Express实现登录注销功能的实例代码
May 05 Javascript
vue-cli4使用全局less文件中的变量配置操作
Oct 21 Javascript
vue登录页实现使用cookie记住7天密码功能的方法
Feb 18 Vue.js
jQuery.each()用法分享
Jul 31 #Javascript
artDialog 4.1.5 Dreamweaver代码提示/补全插件 附下载
Jul 31 #Javascript
JavaScript中的私有/静态属性介绍
Jul 26 #Javascript
13 个JavaScript 性能提升技巧分享
Jul 26 #Javascript
了解一点js的Eval函数
Jul 26 #Javascript
基于jquery实现的一个选择中国大学的弹框 (数据、步骤、代码)
Jul 26 #Javascript
javascript小组件 原生table排序表格脚本(兼容ie firefox opera chrome)
Jul 25 #Javascript
You might like
防止用户利用PHP代码DOS造成用光网络带宽
2011/03/01 PHP
PHP 删除文件与文件夹操作 unlink()与rmdir()这两个函数的使用
2011/07/17 PHP
PHP更新购物车数量(表单部分/PHP处理部分)
2013/05/03 PHP
php根据isbn书号查询amazon网站上的图书信息的示例
2014/02/13 PHP
详解WordPress中用于合成数组的wp_parse_args()函数
2015/12/18 PHP
使用ThinkPHP的自动完成实现无限级分类实例详解
2016/09/02 PHP
xml文档转换工具,附图表例子(hta)
2010/11/17 Javascript
js+css使DIV始终居于屏幕中间 左下 左上 右上 右下的代码集合
2011/03/10 Javascript
自己动手开发jQuery插件教程
2011/08/25 Javascript
分享一个我自己写的ToolTip提示插件(附源码)
2013/01/20 Javascript
js 跳出页面的frameset框架示例介绍
2013/12/23 Javascript
JavaScript重定向URL参数的两种方法小结
2016/10/19 Javascript
基于Bootstrap模态对话框只加载一次 remote 数据的解决方法
2017/07/09 Javascript
jQuery实现html双向绑定功能示例
2017/10/09 jQuery
vue 组件中slot插口的具体用法
2018/04/03 Javascript
iview form清除校验状态的实现
2019/09/19 Javascript
windows下ipython的安装与使用详解
2016/10/20 Python
用Python实现随机森林算法的示例
2017/08/24 Python
numpy排序与集合运算用法示例
2017/12/15 Python
python绘制评估优化算法性能的测试函数
2019/06/25 Python
使用python matplotlib 画图导入到word中如何保证分辨率
2020/04/16 Python
使用Pycharm在运行过程中,查看每个变量的操作(show variables)
2020/06/08 Python
浅析Python __name__ 是什么
2020/07/07 Python
Python如何将将模块分割成多个文件
2020/08/04 Python
python中Django文件上传方法详解
2020/08/05 Python
一款利用css3的鼠标经过动画显示详情特效的实例教程
2014/12/29 HTML / CSS
CSS3按钮鼠标悬浮实现光圈效果源码
2016/09/11 HTML / CSS
HTML5新增加标签和功能概述
2016/09/05 HTML / CSS
关于HTML5+ API plusready的兼容问题
2020/11/20 HTML / CSS
Andrew Marc官网:设计师外套的领先制造商
2019/10/30 全球购物
鸿星尔克广告词
2014/03/21 职场文书
超市创意活动方案
2014/08/15 职场文书
党员四风剖析材料
2014/08/27 职场文书
查摆问题自查报告范文
2014/10/13 职场文书
贵阳市党的群众路线教育实践活动党(工)委领导班子整改方案
2014/10/26 职场文书
团队拓展训练心得体会
2016/01/12 职场文书