Всем доброго времени суток
В общем проблема заключается в следующем: есть таблица tabkesorter-demo , мне нужно сделать так чтобы можно было выделять (я решил сделать это через один клик мышью+растягиваем сколько надо) какие надо поля(скажем все элементы последнего столбца), скопировать их и работать дальше.
Код:
<style type="text/css">
html, body{
margin: 0px;
}
table{
-moz-user-select: none;
-khtml-user-select: none;
user-select: none;
width: 500px;
height: 500px;
}
table, td, th{
margin: 10px;
border-style: solid;
border-color: black;
border-width: 1px;
}
</style>
<script type="text/javascript">
var startCell = null;
function mouseDown(table, e) {
if (!e) var e = window.event;
startCell = e.srcElement ? e.srcElement : e.target;
if (startCell.tagName != "TD") {
startCell = null;
return;
}
mouseMove(table, e);
}
function mouseUp(table, e) {
if (!e) var e = window.event;
var endCell = e.srcElement ? e.srcElement : e.target;
if (!(endCell.tagName == "TD" && startCell))
return false;
var from = getCellPos(table, startCell);
var to = getCellPos(table, endCell);
if (!from || !to)
return false;
startCell = null;
alert("(" + from.col + ", " + from.row + ") -> (" + to.col + ", " + to.row + ")");
}
function mouseMove(table, e) {
if (!e) var e = window.event;
var endCell = e.srcElement ? e.srcElement : e.target;
if (!(endCell.tagName == "TD" && startCell))
return false;
var from = getCellPos(table, startCell);
var to = getCellPos(table, endCell);
if (!from || !to)
return false;
var x, y, cells;
for (y = 0; y < table.rows.length; y++) {
row = table.rows.item(y);
for (x = 0; x < row.cells.length; x++) {
if ((from.row - y) * (y - to.row) >= 0 && (from.col - x) * (x - to.col) >= 0)
row.cells.item(x).style.backgroundColor = "#ffdddd";
else
row.cells.item(x).style.backgroundColor = "transparent";
}
}
}
function getCellPos(table, cell) {
var pos = new Object();
if (cell.nodeName == "TD") {
var x, y, cells;
for (y = 0; y < table.rows.length; y++) {
row = table.rows.item(y);
for (x = 0; x < row.cells.length; x++) {
if (row.cells.item(x) == cell) {
pos.row = y;
pos.col = x;
return pos;
}
}
}
}
return null;
}
</script>
<body>
<table id="tablesorter-demo" onmousedown="mouseDown(this, event); return false;" onmouseup="mouseUp(this, event);" onmousemove="mouseMove(this, event); return true;">
<thead>
<tr>
<th>Имя</th>
<th>Фамилия</th>
<th>Возраст</th>
<th>Всего</th>
<th>Скидка</th>
<th>Разница</th>
<th>Дата</th>
</tr>
</thead>
<tbody>
<tr>
<td>Петр</td>
<td>Иванов</td>
<td>28</td>
<td>$9.99</td>
<td>20.9%</td>
<td>+12.1</td>
<td>Jul 6, 2006 8:14 AM</td>
</tr>
<tr>
<td>Иван</td>
<td>Смирнов</td>
<td>33</td>
<td>$19.99</td>
<td>25%</td>
<td>+12</td>
<td>Dec 10, 2002 5:14 AM</td>
</tr>
<tr>
<td>Сергей</td>
<td>Сидоров</td>
<td>18</td>
<td>$15.89</td>
<td>44%</td>
<td>-26</td>
<td>Jan 12, 2003 11:14 AM</td>
</tr>
<tr>
<td>Михаил</td>
<td>Зубов</td>
<td>45</td>
<td>$153.19</td>
<td>44.7%</td>
<td>+77</td>
<td>Jan 18, 2001 9:12 AM</td>
</tr>
<tr>
<td>Михаил</td>
<td>Медведев</td>
<td>22</td>
<td>$13.19</td>
<td>11%</td>
<td>-100.9</td>
<td>Jan 18, 2007 9:12 AM</td>
</tr>
</tbody>
</table>
</body>
выделяется на ура, а вот копировать нельзя((((, если у кого есть какие идеи, буду рад помощи. спасибо.
Добавлено
Мне это нужно чтобы было возможность выделения и копирования содержимого таблицы, что бы работало во всех браузерах подобно firefox(когда при зажатие Shift или Ctrl выделяешь сколько угодно полей таблицы и спокойно копируешь их), может какой скриптик есть?