Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Позиция элемента в таблице

23K
17 сентября 2007 года
atlete
14 / / 05.07.2007
Добрый день всем.

Стоит следующая задача: получить номер столбца и ячейки по которой
производится нажатие мышкой.
Для реения этой проблемы вешаю обработчик на событие onmousedown

 
Код:
cells[j].onmousedown = function() {
document.structform.action.value = 'edit';
/*
Здесь необхзодимо заполнить номера ячейки и столбца
*/
document.structform.submit();
12
17 сентября 2007 года
alekciy
3.0K / / 13.12.2005
Вариантов много.

К примеру. На каждую ячейку вещаем ID в таком формате по котором сразу будет видно в каком столбце и строке расположена ячейка.

Или. Передаем ячейку как объект через this через обработчик в некую функцию, в функции используя этот объект ходим по DOM дереву расчитывая положение ячейки. В плане реализации этот вариант более трудный.
4
17 сентября 2007 года
mike
3.7K / / 01.10.2002
Мне кажется, что можно обойтись простой ссылкой A, со свойством display:block;
12
17 сентября 2007 года
alekciy
3.0K / / 13.12.2005
Цитата: mike
Мне кажется, что можно обойтись простой ссылкой A, со свойством display:block;


В смысле заменить таблицу набором ссылок А ?

92
17 сентября 2007 года
Тень Пса
2.2K / / 19.10.2006
я так понял в каждую ячейку поставить ссылку, вместо того чтобы вешать клики на ячейки.
12
17 сентября 2007 года
alekciy
3.0K / / 13.12.2005
Цитата: Тень Пса
я так понял в каждую ячейку поставить ссылку, вместо того чтобы вешать клики на ячейки.


А в чем тогда смысл? DOM-у то все равно, с чем работать. С сылкой или ячейкой. Алгорит все равно будет один и тот же.

27K
17 сентября 2007 года
AKS.
34 / / 27.08.2007
У каждой ячейки есть св-во cellIndex!
У кажого ряда есть св-во 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]); // здесь нужные действия с индексами.
};
23K
18 сентября 2007 года
atlete
14 / / 05.07.2007
Спасибо всем за ответы вопрос решился следующим образом

Каждой ячейке присвоил необходимый 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();
}
...



P.S. Ссылками типа <A> заменять не хотелось это решение пришло сразу
но оно не является оптимальным для данной задачи (в контексте системы в которой используется это решение)
12
18 сентября 2007 года
alekciy
3.0K / / 13.12.2005
Выход. Но и AKS. дело сказал. Его вариант при соответсвующей доработке будет более гибким и масштабируемым.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог