mirror of
https://github.com/privacyguides/privacyguides.org.git
synced 2024-10-01 01:35:57 -04:00
384 lines
7.0 KiB
HTML
384 lines
7.0 KiB
HTML
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
|
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
|
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-us">
|
|
<head>
|
|
<title>jQuery plugin: Tablesorter 2.0 - Writing custom widgets</title>
|
|
<link rel="stylesheet" href="css/jq.css" type="text/css" media="print, projection, screen" />
|
|
<link rel="stylesheet" href="../themes/blue/style.css" type="text/css" media="print, projection, screen" />
|
|
<script type="text/javascript" src="../jquery-latest.js"></script>
|
|
|
|
<script type="text/javascript" src="../jquery.tablesorter.js"></script>
|
|
<script type="text/javascript" src="../addons/pager/jquery.tablesorter.pager.js"></script>
|
|
<script type="text/javascript" src="js/chili/chili-1.8b.js"></script>
|
|
<script type="text/javascript" src="js/docs.js"></script>
|
|
<script type="text/javascript">
|
|
$(function() {
|
|
// add new widget called repeatHeaders
|
|
$.tablesorter.addWidget({
|
|
// give the widget a id
|
|
id: "repeatHeaders",
|
|
// format is called when the on init and when a sorting has finished
|
|
format: function(table) {
|
|
// cache and collect all TH headers
|
|
if(!this.headers) {
|
|
var h = this.headers = [];
|
|
$("thead th",table).each(function() {
|
|
h.push(
|
|
"<th>" + $(this).text() + "</th>"
|
|
);
|
|
|
|
});
|
|
}
|
|
|
|
// remove appended headers by classname.
|
|
$("tr.repated-header",table).remove();
|
|
|
|
// loop all tr elements and insert a copy of the "headers"
|
|
for(var i=0; i < table.tBodies[0].rows.length; i++) {
|
|
// insert a copy of the table head every 10th row
|
|
if((i%5) == 4) {
|
|
$("tbody tr:eq(" + i + ")",table).before(
|
|
$("<tr></tr>").addClass("repated-header").html(this.headers.join(""))
|
|
|
|
);
|
|
}
|
|
}
|
|
|
|
}
|
|
});
|
|
|
|
// call the tablesorter plugin and assign widgets with id "zebra" (Default widget in the core) and the newly created "repeatHeaders"
|
|
$("table").tablesorter({
|
|
widgets: ['zebra','repeatHeaders']
|
|
});
|
|
|
|
});
|
|
</script>
|
|
</head>
|
|
<body>
|
|
<div id="banner">
|
|
<h1>table<em>sorter</em></h1>
|
|
<h2>Writing custom widgets</h2>
|
|
<h3>Flexible client-side table sorting</h3>
|
|
<a href="index.html">Back to documentation</a>
|
|
</div>
|
|
<div id="main">
|
|
|
|
<h1>Javascript</h1>
|
|
<pre class="javascript">
|
|
// add new widget called repeatHeaders
|
|
$.tablesorter.addWidget({
|
|
// give the widget a id
|
|
id: "repeatHeaders",
|
|
// format is called when the on init and when a sorting has finished
|
|
format: function(table) {
|
|
// cache and collect all TH headers
|
|
if(!this.headers) {
|
|
var h = this.headers = [];
|
|
$("thead th",table).each(function() {
|
|
h.push(
|
|
"<th>" + $(this).text() + "</th>"
|
|
);
|
|
|
|
});
|
|
}
|
|
|
|
// remove appended headers by classname.
|
|
$("tr.repated-header",table).remove();
|
|
|
|
// loop all tr elements and insert a copy of the "headers"
|
|
for(var i=0; i < table.tBodies[0].rows.length; i++) {
|
|
// insert a copy of the table head every 10th row
|
|
if((i%5) == 4) {
|
|
$("tbody tr:eq(" + i + ")",table).before(
|
|
$("<tr></tr>").html(this.headers.join(""))
|
|
|
|
);
|
|
}
|
|
}
|
|
}
|
|
});
|
|
|
|
// call the tablesorter plugin and assign widgets with id "zebra" (Default widget in the core) and the newly created "repeatHeaders"
|
|
$("table").tablesorter({
|
|
widgets: ['zebra','repeatHeaders']
|
|
});
|
|
</pre>
|
|
|
|
<h1>Demo</h1>
|
|
<table cellspacing="1" class="tablesorter">
|
|
<thead>
|
|
<tr>
|
|
<th>Name</th>
|
|
<th>Major</th>
|
|
<th>Sex</th>
|
|
<th>English</th>
|
|
<th>Japanese</th>
|
|
<th>Calculus</th>
|
|
<th>Geometry</th>
|
|
|
|
</tr>
|
|
</thead>
|
|
<tfoot>
|
|
<tr>
|
|
<th>Name</th>
|
|
<th>Major</th>
|
|
<th>Sex</th>
|
|
<th>English</th>
|
|
<th>Japanese</th>
|
|
<th>Calculus</th>
|
|
<th>Geometry</th>
|
|
|
|
</tr>
|
|
</tfoot>
|
|
<tbody>
|
|
<tr>
|
|
<td>Student01</td>
|
|
<td>Languages</td>
|
|
<td>male</td>
|
|
|
|
<td>80</td>
|
|
<td>70</td>
|
|
<td>75</td>
|
|
<td>80</td>
|
|
</tr>
|
|
<tr>
|
|
<td>Student02</td>
|
|
|
|
<td>Mathematics</td>
|
|
<td>male</td>
|
|
<td>90</td>
|
|
<td>88</td>
|
|
<td>100</td>
|
|
<td>90</td>
|
|
|
|
</tr>
|
|
<tr>
|
|
<td>Student03</td>
|
|
<td>Languages</td>
|
|
<td>female</td>
|
|
<td>85</td>
|
|
<td>95</td>
|
|
|
|
<td>80</td>
|
|
<td>85</td>
|
|
</tr>
|
|
<tr>
|
|
<td>Student04</td>
|
|
<td>Languages</td>
|
|
<td>male</td>
|
|
|
|
<td>60</td>
|
|
<td>55</td>
|
|
<td>100</td>
|
|
<td>100</td>
|
|
</tr>
|
|
<tr>
|
|
<td>Student05</td>
|
|
|
|
<td>Languages</td>
|
|
<td>female</td>
|
|
<td>68</td>
|
|
<td>80</td>
|
|
<td>95</td>
|
|
<td>80</td>
|
|
|
|
</tr>
|
|
<tr>
|
|
<td>Student06</td>
|
|
<td>Mathematics</td>
|
|
<td>male</td>
|
|
<td>100</td>
|
|
<td>99</td>
|
|
|
|
<td>100</td>
|
|
<td>90</td>
|
|
</tr>
|
|
<tr>
|
|
<td>Student07</td>
|
|
<td>Mathematics</td>
|
|
<td>male</td>
|
|
|
|
<td>85</td>
|
|
<td>68</td>
|
|
<td>90</td>
|
|
<td>90</td>
|
|
</tr>
|
|
<tr>
|
|
<td>Student08</td>
|
|
|
|
<td>Languages</td>
|
|
<td>male</td>
|
|
<td>100</td>
|
|
<td>90</td>
|
|
<td>90</td>
|
|
<td>85</td>
|
|
|
|
</tr>
|
|
<tr>
|
|
<td>Student09</td>
|
|
<td>Mathematics</td>
|
|
<td>male</td>
|
|
<td>80</td>
|
|
<td>50</td>
|
|
|
|
<td>65</td>
|
|
<td>75</td>
|
|
</tr>
|
|
<tr>
|
|
<td>Student10</td>
|
|
<td>Languages</td>
|
|
<td>male</td>
|
|
|
|
<td>85</td>
|
|
<td>100</td>
|
|
<td>100</td>
|
|
<td>90</td>
|
|
</tr>
|
|
<tr>
|
|
<td>Student11</td>
|
|
|
|
<td>Languages</td>
|
|
<td>male</td>
|
|
<td>86</td>
|
|
<td>85</td>
|
|
<td>100</td>
|
|
<td>100</td>
|
|
|
|
</tr>
|
|
<tr>
|
|
<td>Student12</td>
|
|
<td>Mathematics</td>
|
|
<td>female</td>
|
|
<td>100</td>
|
|
<td>75</td>
|
|
|
|
<td>70</td>
|
|
<td>85</td>
|
|
</tr>
|
|
<tr>
|
|
<td>Student13</td>
|
|
<td>Languages</td>
|
|
<td>female</td>
|
|
|
|
<td>100</td>
|
|
<td>80</td>
|
|
<td>100</td>
|
|
<td>90</td>
|
|
</tr>
|
|
<tr>
|
|
<td>Student14</td>
|
|
|
|
<td>Languages</td>
|
|
<td>female</td>
|
|
<td>50</td>
|
|
<td>45</td>
|
|
<td>55</td>
|
|
<td>90</td>
|
|
|
|
</tr>
|
|
<tr>
|
|
<td>Student15</td>
|
|
<td>Languages</td>
|
|
<td>male</td>
|
|
<td>95</td>
|
|
<td>35</td>
|
|
|
|
<td>100</td>
|
|
<td>90</td>
|
|
</tr>
|
|
<tr>
|
|
<td>Student16</td>
|
|
<td>Languages</td>
|
|
<td>female</td>
|
|
|
|
<td>100</td>
|
|
<td>50</td>
|
|
<td>30</td>
|
|
<td>70</td>
|
|
</tr>
|
|
<tr>
|
|
<td>Student17</td>
|
|
|
|
<td>Languages</td>
|
|
<td>female</td>
|
|
<td>80</td>
|
|
<td>100</td>
|
|
<td>55</td>
|
|
<td>65</td>
|
|
|
|
</tr>
|
|
<tr>
|
|
<td>Student18</td>
|
|
<td>Mathematics</td>
|
|
<td>male</td>
|
|
<td>30</td>
|
|
<td>49</td>
|
|
|
|
<td>55</td>
|
|
<td>75</td>
|
|
</tr>
|
|
<tr>
|
|
<td>Student19</td>
|
|
<td>Languages</td>
|
|
<td>male</td>
|
|
|
|
<td>68</td>
|
|
<td>90</td>
|
|
<td>88</td>
|
|
<td>70</td>
|
|
</tr>
|
|
<tr>
|
|
<td>Student20</td>
|
|
|
|
<td>Mathematics</td>
|
|
<td>male</td>
|
|
<td>40</td>
|
|
<td>45</td>
|
|
<td>40</td>
|
|
<td>80</td>
|
|
|
|
</tr>
|
|
<tr>
|
|
<td>Student21</td>
|
|
<td>Languages</td>
|
|
<td>male</td>
|
|
<td>50</td>
|
|
<td>45</td>
|
|
|
|
<td>100</td>
|
|
<td>100</td>
|
|
</tr>
|
|
<tr>
|
|
<td>Student22</td>
|
|
<td>Mathematics</td>
|
|
<td>male</td>
|
|
|
|
<td>100</td>
|
|
<td>99</td>
|
|
<td>100</td>
|
|
<td>90</td>
|
|
</tr>
|
|
<tr>
|
|
<td>Student23</td>
|
|
|
|
<td>Languages</td>
|
|
<td>female</td>
|
|
<td>85</td>
|
|
<td>80</td>
|
|
<td>80</td>
|
|
<td>80</td>
|
|
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
<script src="http://www.google-analytics.com/urchin.js" type="text/javascript"></script>
|
|
<script type="text/javascript">
|
|
_uacct = "UA-2189649-2";
|
|
urchinTracker();
|
|
</script>
|
|
</body>
|
|
</html>
|
|
|