cells[j].onmousedown = function() {
document.structform.action.value = 'edit';
/*
Здесь необхзодимо заполнить номера ячейки и столбца
*/
document.structform.submit();
Позиция элемента в таблице
Стоит следующая задача: получить номер столбца и ячейки по которой
производится нажатие мышкой.
Для реения этой проблемы вешаю обработчик на событие onmousedown
Код:
К примеру. На каждую ячейку вещаем ID в таком формате по котором сразу будет видно в каком столбце и строке расположена ячейка.
Или. Передаем ячейку как объект через this через обработчик в некую функцию, в функции используя этот объект ходим по DOM дереву расчитывая положение ячейки. В плане реализации этот вариант более трудный.
Мне кажется, что можно обойтись простой ссылкой A, со свойством display:block;
Цитата: mike
Мне кажется, что можно обойтись простой ссылкой A, со свойством display:block;
В смысле заменить таблицу набором ссылок А ?
я так понял в каждую ячейку поставить ссылку, вместо того чтобы вешать клики на ячейки.
Цитата: Тень Пса
я так понял в каждую ячейку поставить ссылку, вместо того чтобы вешать клики на ячейки.
А в чем тогда смысл? DOM-у то все равно, с чем работать. С сылкой или ячейкой. Алгорит все равно будет один и тот же.
У кажого ряда есть св-во rowIndex!
Для того, чтобы выяснить на какой ячейке был сделан клик, достаточно повесить один обработчик события onclick на таблицу.
Например так:
[HTML]<table onclick='F(event)'>[/HTML]
Функция F может выглядеть следующим образом:
Код:
function F(e) {
e = e.target || e.srcElement;
while (e) {
if (typeof e.cellIndex != 'undefined') {
break;
} else if (!e.tagName) {
return;
};
e = e.parentNode;
};
var i = e.cellIndex;
var k = e.parentNode.rowIndex;
return alert([i, k]); // здесь нужные действия с индексами.
};
e = e.target || e.srcElement;
while (e) {
if (typeof e.cellIndex != 'undefined') {
break;
} else if (!e.tagName) {
return;
};
e = e.parentNode;
};
var i = e.cellIndex;
var k = e.parentNode.rowIndex;
return alert([i, k]); // здесь нужные действия с индексами.
};
Каждой ячейке присвоил необходимый ID
<td id="123">
....
java script:
Код:
...
cells[j].onmousedown = function() {
var params = this.getAttribute("id");
var param = params.split(".");
document.structform.action.value = 'edit';
document.structform.id.value = param[0];
document.structform.item_id.value = param[1];
document.structform.submit();
}
...
cells[j].onmousedown = function() {
var params = this.getAttribute("id");
var param = params.split(".");
document.structform.action.value = 'edit';
document.structform.id.value = param[0];
document.structform.item_id.value = param[1];
document.structform.submit();
}
...
P.S. Ссылками типа <A> заменять не хотелось это решение пришло сразу
но оно не является оптимальным для данной задачи (в контексте системы в которой используется это решение)
Выход. Но и AKS. дело сказал. Его вариант при соответсвующей доработке будет более гибким и масштабируемым.