![]() |
Модераторы: Sardar, Aliance |
![]() ![]() ![]() |
|
MagicPRO |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 200 Регистрация: 4.10.2006 Где: Kremencity Репутация: нет Всего: нет |
Необходимо сделать форму с таблицей:
размер можно менять отдельными командными ( добавить строку (в конце), удалить строку(текущую), добавить столбец(в конце)) сделать 2 клавиши добавление и удаление. первоначальный размер таблицы 2х2. Как лучше сделать, до этого вечно конфликт строки со столбцом был. --------------------
smile=iwashere |
|||
|
||||
Evghenusi |
|
|||
![]() майский жук ![]() ![]() Профиль Группа: Участник Сообщений: 506 Регистрация: 3.8.2006 Где: Молдова, Кишинёв Репутация: 3 Всего: 15 |
делал подобное на чистом JS, и конфликтов не было.
можете его описать? |
|||
|
||||
MagicPRO |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 200 Регистрация: 4.10.2006 Где: Kremencity Репутация: нет Всего: нет |
я сделал тоже на чистом яве...но сказали переделать на jquery.а я с ним не особо дружу. Может у кого есть примеры на Jquery, обшарил интернет подобного чето не нашел.
--------------------
smile=iwashere |
|||
|
||||
$дмитрий |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1037 Регистрация: 19.6.2004 Репутация: 5 Всего: 45 |
Для копировании строки достаточно посчитать количество td, затем в переменной сформировать всю строку и вставить результат, еще можно клонировать строку целиком и почистив содержимое td, вставить в таблицу
Для копировании столбца просто вставляем последним элементом новый td по всех tr |
|||
|
||||
MagicPRO |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 200 Регистрация: 4.10.2006 Где: Kremencity Репутация: нет Всего: нет |
а при удалении??
--------------------
smile=iwashere |
|||
|
||||
$дмитрий |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1037 Регистрация: 19.6.2004 Репутация: 5 Всего: 45 |
Для удалении последней строки используй метод remove(), примерно так:
Это сообщение отредактировал(а) $дмитрий - 29.11.2011, 19:08 |
|||
|
||||
MagicPRO |
|
||||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 200 Регистрация: 4.10.2006 Где: Kremencity Репутация: нет Всего: нет |
Сделал таблицу при помощи grid. Смог реализовать удаление/добавление строки только.
А вот собственно jquery
P.S. сказали убрать метод for(т.к. это древний метод)))) --------------------
smile=iwashere |
||||
|
|||||
MagicPRO |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 200 Регистрация: 4.10.2006 Где: Kremencity Репутация: нет Всего: нет |
--------------------
smile=iwashere |
|||
|
||||
$дмитрий |
|
||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1037 Регистрация: 19.6.2004 Репутация: 5 Всего: 45 |
Как минимум в этой записи
|
||||
|
|||||
MagicPRO |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 200 Регистрация: 4.10.2006 Где: Kremencity Репутация: нет Всего: нет |
Пардон, пост писал под шафэ).....в общем проведённый день прошел не зря! Перечитал кучу инфы по jQuery. И вот что получилось таблица !
Осталось 2 нерешенные задачи: 1 - Удаление столбца и 2 - Добавление строки длиною всей таблицы(в зависимости от количества столбцов) --------------------
smile=iwashere |
|||
|
||||
$дмитрий |
|
||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1037 Регистрация: 19.6.2004 Репутация: 5 Всего: 45 |
Вместо
Правильнее
|
||||
|
|||||
MagicPRO |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 200 Регистрация: 4.10.2006 Где: Kremencity Репутация: нет Всего: нет |
Со строкой разобрался, а как удалить столбцы(((((
--------------------
smile=iwashere |
|||
|
||||
$дмитрий |
|
||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1037 Регистрация: 19.6.2004 Репутация: 5 Всего: 45 |
С помощью each перебрать все tr, и применить на каждой итерации
|
||||
|
|||||
MagicPRO |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 200 Регистрация: 4.10.2006 Где: Kremencity Репутация: нет Всего: нет |
Метод удаление столбца, но все равно как-то удаляет криво! http://jsfiddle.net/magicpro/hSuWr/24/
--------------------
smile=iwashere |
|||
|
||||
$дмитрий |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1037 Регистрация: 19.6.2004 Репутация: 5 Всего: 45 |
Перечитай внимательно что написал
Где цикл each? Не вижу |
|||
|
||||
MagicPRO |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 200 Регистрация: 4.10.2006 Где: Kremencity Репутация: нет Всего: нет |
проблема с each, в паре нужно использовать цикл for, а мне нужно без for. как поступить?!
--------------------
smile=iwashere |
|||
|
||||
$дмитрий |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1037 Регистрация: 19.6.2004 Репутация: 5 Всего: 45 |
Покажи пример с кодом, где там проблема с циклом |
|||
|
||||
MagicPRO |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 200 Регистрация: 4.10.2006 Где: Kremencity Репутация: нет Всего: нет |
Все получилось. each был заменен на clone. Может не самый лучший вариант, но на данную задачу пойдет!
Рабочий вариант Спасибо всем за помощь! --------------------
smile=iwashere |
|||
|
||||
MagicPRO |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 200 Регистрация: 4.10.2006 Где: Kremencity Репутация: нет Всего: нет |
Теперь новая задача! Реализовать нужно что-то вроде excel'я. Чтоб удалить выбранный строку/столбец или добавить после выделенного строку/столбец.
Я так понял нужно использовать chekbox с условиями, но возможно есть другие методы! --------------------
smile=iwashere |
|||
|
||||
ksnk |
|
|||
![]() прохожий ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 6855 Регистрация: 13.4.2007 Где: СПб Репутация: 48 Всего: 386 |
MagicPRO, Ищи плагин - "контекстное меню". Их дофига, если покопаться в плагинах jQuery. Вставить несколько строк в меню - удалить, добавить строку и т.д.
Можно отдельное менюшко с кнопками использовать сверху таблицы. Соответственно, клик по строке "выделяет" её, кнопка "удалить" удаляет выделенное... Вообще - Excel - образец функциональности, привычной и интуитивно понятной простому народу. Если копировать внешность Excel - нужно скопировать и поведение? чтобы народ не вводился в недоумение... -------------------- Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! ![]() |
|||
|
||||
MagicPRO |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 200 Регистрация: 4.10.2006 Где: Kremencity Репутация: нет Всего: нет |
У меня тут такая мысль пришла, вот только можно ли так. Если выделять ячейку при наведении и считывать её местонахождение(индекс), а затем идти при помощи правой кнопки -> контекстное меню -> добавить столбец,удалить столбец,удалить строку,добавить строку.
--------------------
smile=iwashere |
|||
|
||||
ksnk |
|
|||
![]() прохожий ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 6855 Регистрация: 13.4.2007 Где: СПб Репутация: 48 Всего: 386 |
http://jsfiddle.net/QhL9E/ -------------------- Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! ![]() |
|||
|
||||
MagicPRO |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 200 Регистрация: 4.10.2006 Где: Kremencity Репутация: нет Всего: нет |
ksnk, спасибо вам огромное, разобрал ваш пример! очень хороший метод!
Кстати прописал его в html, стиль работает а jquery нет(
--------------------
smile=iwashere |
|||
|
||||
ksnk |
|
|||
![]() прохожий ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 6855 Регистрация: 13.4.2007 Где: СПб Репутация: 48 Всего: 386 |
MagicPRO, Для начала - нужно ТОЧНО скопировать css правила. Потом понять, зачем нужно 4 раза подгружать jQuery. Убрать лишние разы.
Jacascript, который использует jQuery, как правило, вызывается при загрузке страницы. Для этого он заключается в такую конструкцию
-------------------- Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! ![]() |
|||
|
||||
MagicPRO |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 200 Регистрация: 4.10.2006 Где: Kremencity Репутация: нет Всего: нет |
да получилось, расставил синтаксис и т.д., но одна функция странно работает добавляет столбец с активными ячейками но без границ, просто пустота но можно выделить ячейку.
--------------------
smile=iwashere |
|||
|
||||
ksnk |
|
|||
![]() прохожий ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 6855 Регистрация: 13.4.2007 Где: СПб Репутация: 48 Всего: 386 |
Что за функция, в каком броузере, как воспроизвести? В моем хроме все в порядке. -------------------- Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! ![]() |
|||
|
||||
MagicPRO |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 200 Регистрация: 4.10.2006 Где: Kremencity Репутация: нет Всего: нет |
функция #addcell, в ИЕ 8 и мозиле одна и таже проблема, столбец добавляет но нет границ ячеек
--------------------
smile=iwashere |
|||
|
||||
ksnk |
|
|||
![]() прохожий ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 6855 Регистрация: 13.4.2007 Где: СПб Репутация: 48 Всего: 386 |
содержимое не копируется.
Тогда так:
-------------------- Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! ![]() |
|||
|
||||
MagicPRO |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 200 Регистрация: 4.10.2006 Где: Kremencity Репутация: нет Всего: нет |
да..теперь работает. спасибо!!а вообще странный случай что не прорисовывает границы ячеек....
--------------------
smile=iwashere |
|||
|
||||
MagicPRO |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 200 Регистрация: 4.10.2006 Где: Kremencity Репутация: нет Всего: нет |
а в этом случае можно добавить функцию ввода текста в ячейку? например .dblclick() или вместо выделения просто .click() что сохранились функции изменения таблицы?
--------------------
smile=iwashere |
|||
|
||||
ksnk |
|
||||||
![]() прохожий ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 6855 Регистрация: 13.4.2007 Где: СПб Репутация: 48 Всего: 386 |
Функции изменения таблицы никак не завязаны на содержимое таблицы. Все функции изменения таблицы используют специально отмеченную ячейку. Каким образом ее помечать - личное дело приложения, для простоты у меня меняется класс ячейки
если есть надобность использовать другой способ отметки ячейки - нужно менять/заменить эти строки + функцию
Можно. -------------------- Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! ![]() |
||||||
|
|||||||
MagicPRO |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 200 Регистрация: 4.10.2006 Где: Kremencity Репутация: нет Всего: нет |
Можно но вопрос как)).....прочитав документацию сделал вывод что это для каждой ячейки надо делать input text?
--------------------
smile=iwashere |
|||
|
||||
MagicPRO |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 200 Регистрация: 4.10.2006 Где: Kremencity Репутация: нет Всего: нет |
ksnk,этот фрагмент когда делает активную ячейку в связи с которой потом форматируется таблица, а если её оставить активной но добавить возможность вводить текст.
$(function(){ $('#table').click(function(event){ var $cell=$(event.target).parents('td').andSelf().filter('td'); if( $cell.length>0){ $('#table td').removeClass('active'); $cell.addClass('active'); } --------------------
smile=iwashere |
|||
|
||||
MagicPRO |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 200 Регистрация: 4.10.2006 Где: Kremencity Репутация: нет Всего: нет |
ksnk,этот фрагмент когда делает активную ячейку в связи с которой потом форматируется таблица, а если её оставить активной но добавить возможность вводить текст.
$(function(){ $('#table').click(function(event){ var $cell=$(event.target).parents('td').andSelf().filter('td'); if( $cell.length>0){ $('#table td').removeClass('active'); $cell.addClass('active'); } --------------------
smile=iwashere |
|||
|
||||
ksnk |
|
|||
![]() прохожий ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 6855 Регистрация: 13.4.2007 Где: СПб Репутация: 48 Всего: 386 |
Ну и что мешает? Вверху - отдельное поле ввода, в которое при "активации" копируется содержимое ячейки, а при нажатии на ввод это содержимое вставляется обратно и обнуляется? Или каким-нибудь диалогом запрашиваем содержимое. Или просто инпут "подравниваем" до границ ячейки и абсолютным позиционированием размещаем над ячейкой. По onblur содержимое ячейки вбрасывается в ячейку. Что делалось и что не получается? -------------------- Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! ![]() |
|||
|
||||
MagicPRO |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 200 Регистрация: 4.10.2006 Где: Kremencity Репутация: нет Всего: нет |
про onblur, впервые слышу, надо почитать. просто т.к. идея "аля" excel, то полей за пределами таблицы быть не должно.
--------------------
smile=iwashere |
|||
|
||||
MagicPRO |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 200 Регистрация: 4.10.2006 Где: Kremencity Репутация: нет Всего: нет |
ksnk, а можете сделать какие то наброски, как реализовать 3й вариант предложенный Вами. Я перечитал куча статей и никак не сведу мысли до кучи как это реализовать(
--------------------
smile=iwashere |
|||
|
||||
ksnk |
|
|||
![]() прохожий ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 6855 Регистрация: 13.4.2007 Где: СПб Репутация: 48 Всего: 386 |
Выдернул из своего проекта редактор, немножко с корнями... Пришлось срочно дописывать комментарии и тестовую страничку. Как-то не планировалось оформлять его как посторонний плагин, но вроде не так уж и плохо выглядит. Если будут какие-то глюки - нужно докладывать. Проверялся на IE9 , хроме и FF. P.S. сейчас работает и на IE6-9 Это сообщение отредактировал(а) ksnk - 13.1.2012, 09:46 Присоединённый файл ( Кол-во скачиваний: 10 ) ![]() -------------------- Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! ![]() |
|||
|
||||
MagicPRO |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 200 Регистрация: 4.10.2006 Где: Kremencity Репутация: нет Всего: нет |
спасибо за материал, только не работают стрелки почему то(
п.с. все таки как добавить возможность вводить текст к тому примеру что Вы писали с активной ячейкой Это сообщение отредактировал(а) MagicPRO - 15.1.2012, 13:59 --------------------
smile=iwashere |
|||
|
||||
ksnk |
|
|||
![]() прохожий ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 6855 Регистрация: 13.4.2007 Где: СПб Репутация: 48 Всего: 386 |
На моей тестовой страничке работают? В самой нижней таблице? Где и как не работают? -------------------- Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! ![]() |
|||
|
||||
MagicPRO |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 200 Регистрация: 4.10.2006 Где: Kremencity Репутация: нет Всего: нет |
все заработал.....у меня есть идея попробую реализовать под свой код!
а для чего нужен файл editcell.js? editcell.min.js - описывает редактирование? Это сообщение отредактировал(а) MagicPRO - 16.1.2012, 01:29 --------------------
smile=iwashere |
|||
|
||||
ksnk |
|
|||
![]() прохожий ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 6855 Регистрация: 13.4.2007 Где: СПб Репутация: 48 Всего: 386 |
editcell.min.js- сжатый YUCompressor'ом editcell.js
-------------------- Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! ![]() |
|||
|
||||
MagicPRO |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 200 Регистрация: 4.10.2006 Где: Kremencity Репутация: нет Всего: нет |
Исходя из кода который был, нужно было дописать. Библиотечку "editcell" заброковали. Пришлось использовать textarea и получился вот такой вариант Вариант, но теперь нужно без кнопок. Тоесть кликаешь на ячейку вводишь текст, кликаешь на другую он сохраняется. С вводом легко, можно убрать кнопку и сделать событие просто по click, а как прописать чтоб автоматически сохранялось?
Это сообщение отредактировал(а) MagicPRO - 19.1.2012, 20:21 --------------------
smile=iwashere |
|||
|
||||
ksnk |
|
|||
![]() прохожий ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 6855 Регистрация: 13.4.2007 Где: СПб Репутация: 48 Всего: 386 |
По какой причине забраковали библиотеку?
-------------------- Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! ![]() |
|||
|
||||
MagicPRO |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 200 Регистрация: 4.10.2006 Где: Kremencity Репутация: нет Всего: нет |
библиотекой довольный, но нужен модернизированый этот код что у меня(
--------------------
smile=iwashere |
|||
|
||||
ksnk |
|
|||
![]() прохожий ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 6855 Регистрация: 13.4.2007 Где: СПб Репутация: 48 Всего: 386 |
Ну, флаг в руки. Все правильные буквы уже написаны
![]() -------------------- Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! ![]() |
|||
|
||||
MagicPRO |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 200 Регистрация: 4.10.2006 Где: Kremencity Репутация: нет Всего: нет |
ksnk, все таки мне понравился ваш пример разобрал и буду испльзовать его дальше, но возникла маленькая проблемка с textarea, при ожидании ввода текста перекрывает границу ячейки.
--------------------
smile=iwashere |
|||
|
||||
![]() ![]() ![]() |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | JavaScript: для новичков | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |