Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #11 (permalink)  
Старый 11.04.2009, 16:01
Аспирант
Отправить личное сообщение для alexandre Посмотреть профиль Найти все сообщения от alexandre
 
Регистрация: 23.03.2009
Сообщений: 44

Сообщение от Riim Посмотреть сообщение
Это раньше такой вариант в dojo кажется, использовался, или где то еще.
Щелкаешь по ячейке таблицы, див навешивается над ней и в диве input встроен. Вводишь текст, и он в ячейку записывается. Сейчас это уже по-другому делается, но и этот способ имеет свои плюсы.
А как это сечас делается какие еще варианты существуют я только этот знаю с дивом и все?
И как этот инпут с дивом перемещается в задействованую ячейку вернее как он понимает координаты куда ему нужно попасть?
Ответить с цитированием
  #12 (permalink)  
Старый 11.04.2009, 16:48
Аватар для Riim
Рассеянный профессор
Отправить личное сообщение для Riim Посмотреть профиль Найти все сообщения от Riim
 
Регистрация: 06.04.2009
Сообщений: 2,379

Сообщение от alexandre
А как это сечас делается
Из ячейки все стирается. В пустую, теперь уже, ячейку добавляется input и в него текст который был в ячейке. Так намного проще, поскольку не нужно высчитывать реальную позицию ячейки.
Ответить с цитированием
  #13 (permalink)  
Старый 11.04.2009, 17:06
Аспирант
Отправить личное сообщение для alexandre Посмотреть профиль Найти все сообщения от alexandre
 
Регистрация: 23.03.2009
Сообщений: 44

Сообщение от Riim Посмотреть сообщение
Из ячейки все стирается. В пустую, теперь уже, ячейку добавляется input и в него текст который был в ячейке.
Тоесть в каждую ячейку инпут вставляется? Тоесть получается штук 100-150 инпутов. Может чтото я не так понял?
Ответить с цитированием
  #14 (permalink)  
Старый 11.04.2009, 17:33
Аватар для Riim
Рассеянный профессор
Отправить личное сообщение для Riim Посмотреть профиль Найти все сообщения от Riim
 
Регистрация: 06.04.2009
Сообщений: 2,379

Сообщение от alexandre
Тоесть в каждую ячейку инпут вставляется?
Это проделывается при каждом щелчке на ячейке. При щелчке в другом месте input удаляется, а его содержимое возвращается обратно на место.
Ответить с цитированием
  #15 (permalink)  
Старый 11.04.2009, 17:37
Аватар для Riim
Рассеянный профессор
Отправить личное сообщение для Riim Посмотреть профиль Найти все сообщения от Riim
 
Регистрация: 06.04.2009
Сообщений: 2,379

Сообщение от alexandre
вернее как он понимает координаты куда ему нужно попасть?
Ищите в Jquery метод с вызовом getBoundingClientRect.
Ответить с цитированием
  #16 (permalink)  
Старый 13.04.2009, 18:56
StalkeR XP
 
Сообщений: n/a

Сообщение от czar Посмотреть сообщение
ну в экселе так и делается) поэтому почему бы и нет ?
В экселе так НЕ делается, поскольку эксель показывает многострочный контрол висящий НАД сеткой и отображающий столько строчек, сколько их влезет на экран (по ширине кстати аналогично - длинные формулы показываются до границы экрана и только потом начинают переноситься на вторую строку).
Ответить с цитированием
  #17 (permalink)  
Старый 13.04.2009, 19:04
StalkeR XP
 
Сообщений: n/a

Сообщение от Riim Посмотреть сообщение
Из ячейки все стирается. В пустую, теперь уже, ячейку добавляется input и в него текст который был в ячейке. Так намного проще, поскольку не нужно высчитывать реальную позицию ячейки.
Хех, "намного проще" != "намного лучше" ))
Вообще есть идея рисовать таблицу не через table, а дивами, но это уже дело вкуса.
Координаты можно вычислить просуммировав ширину и высоту предыдущих столбцов и строк, соответственно, учтя отступы.
Что из этого окажется более кроссбраузерным при меньших жертвах - это и будет критерием при выборе.
Ответить с цитированием
  #18 (permalink)  
Старый 13.04.2009, 19:34
Аватар для Riim
Рассеянный профессор
Отправить личное сообщение для Riim Посмотреть профиль Найти все сообщения от Riim
 
Регистрация: 06.04.2009
Сообщений: 2,379

Сообщение от StalkeR XP
Хех, "намного проще" != "намного лучше" ))
Я этого не говорил.

Сообщение от StalkeR XP
Что из этого окажется более кроссбраузерным при меньших жертвах - это и будет критерием при выборе.
Согласен на 100%. Только более кроссбраузерным окажется вариант без "летающего дива".
Ответить с цитированием
  #19 (permalink)  
Старый 11.08.2011, 04:38
Аватар для antonM
Кандидат Javascript-наук
Отправить личное сообщение для antonM Посмотреть профиль Найти все сообщения от antonM
 
Регистрация: 11.08.2011
Сообщений: 103

Здравствуйте,
у меня примерно такая же разработка. В целях самообразования пишу небольшой Calc-like грид.
Хочу спросить совета у специалистов. Когда генерируется грид, каждой ячейке присваивается уникальный id вида R10C5.
Соответственно первое - это строка, второе - столбец.
Когда я делаю подсветку шапки строки и столбца приходиться определять их координаты, точнее номер строки и столбца. На данный момент я это делаю распарсиванием id с помощью регулярных выражений, примерно так:
var str = jQuery(this).attr('id').match(/R[0-9]+|C[0-9]+/ig);
var row = str[0].replace("R", "");
var col = str[1].replace("C", "");

Можно конечно id упростить до вида 10_5, тогда его можно сплитом сразу разделить на координаты
Возможно лучшим вариантом будет с помощью jQuery определять номер строки и столбца, например вот так:
var col = jQuery(this).parent().children().index(jQuery(this));
var row = jQuery(this).parent().parent().children().index(jQuery(this).parent()) * 1 + 1;

Вопрос именно по производительности. Что быстрее и лучше будет работать при размере грида 100х100 например.
Предполагаю что RegExp будет быстрее, чем jQuery будет перебирать все элементы данного узла DOM.
Также хотелось бы в конце работы выставить работу на показ для критики/оптимизации специалистами.
Из практических задач:
- разработка самого грида
- поддержка навигации и редактирования значений (в стиле Excel/LibreCalc)
- поддержка работы с формулами внутри одного грида и между несколькими
- из методов: выдергивание значений из грида (ячейка, строка, столбец, диапазон) в виде массивов и JSON.
- небольшая панель форматирования стиля текста в ячейках
- поддержка диаграмм (думаю использовать jqplot)
... что то еще наверное добавиться чуть позже.
Уже есть рабочий макет, но сейчас занимаюсь оформлением в виде плагина jQuery и оптимизацией (на сколько могу...) параллельно изучаю и доки по написанию плагинов. Информации просто море
Есть конечно jQuery Sheet, но по ряду причин он меня не устраивает и самообразование конечно тоже немаловажно.
Спасибо всем кто поможет!
Ответить с цитированием
  #20 (permalink)  
Старый 11.08.2011, 20:06
Аватар для x-yuri
Отправить личное сообщение для x-yuri Посмотреть профиль Найти все сообщения от x-yuri
 
Регистрация: 27.12.2008
Сообщений: 4,201

Сообщение от antonM
Можно конечно id упростить до вида 10_5, тогда его можно сплитом сразу разделить на координаты
хорошая идея, упрощай, если есть возможность. Только я бы использовал класс (иначе нельзя будет вставить несколько grid'ов на страницу) и назвал бы его как-то так: myGrid-10-5. А так как этот id используется только для определения номера ячейки, я бы эту информацию в свойствах ячеек разместил:
cell.row = 10;
cell.column = 5;
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
jQuery для загрузки страницы в <div> Dr.Holerik jQuery 12 11.10.2016 17:36
Jquery + XML + Internet Explorer testdriver jQuery 12 15.10.2009 08:14
Jquery, Dynatree и JSON antirek jQuery 6 01.09.2009 15:00
jquery tabs (проблема с отображением) Extern Элементы интерфейса 0 16.03.2009 17:42
первый опыт jquery. Вопросы. Titto jQuery 0 17.09.2008 10:32