|
|
|
Изобрёл велосипед
|
|||
|---|---|---|---|
|
#18+
в ие6 - дропдаун не работает. MS дебаггер говорит "вах-вах, неизвестная ошибка выполнения в строке 304". Подсвечивает строку - document.getElementById("_calendur").innerHTML=html+"</table>". Заменяю на document.getElementById("_calendur").innerHTML="йцуке". Работает. Значит дело в хтмл-странице. Извилистым путем прихожу к выводу, что скрипт конфликтует с незакрытым тегом <TABLE cellSpacing=0 cellPadding=0 border=0> в фрагменте Код: plaintext 1. 2. 3. Код: plaintext 1. 2. 3. 4. 5. 6. P.S. Дык это, может все-таки юзать createElement, appendChild и табличные insertRow,insertCell, а не трехэтажный innerHTML, который будет конфликтовать с кем попало ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.05.2008, 07:25 |
|
||
|
Изобрёл велосипед
|
|||
|---|---|---|---|
|
#18+
illion ура, работает. Спасибо! Точно у меня в aspx глюк был - теперь (после аппенд чилд) заработало. illionP.S. Дык это, может все-таки юзать createElement, appendChild и табличные insertRow,insertCell, а не трехэтажный innerHTML, который будет конфликтовать с кем попало ? Не советую (я этим баловался) - ещё хуже. Помоему - исправил . Как оно в ИЕ6? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.05.2008, 11:59 |
|
||
|
Изобрёл велосипед
|
|||
|---|---|---|---|
|
#18+
По уму, надо ещё кнопочку в инпуте сделать абсолютно позиционированной и на неё клик повесить, т.е. сделать спан, свапНоде с инпутом, аппенд чилд инпута и имажи. И самое главное - заменить регэксп на больше-меньше кейкоде (не работает нумпад). Конструкция String.fromCharCode(event.keyCode) в нумпаде для 1 возвращает a, для 2 - b. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.05.2008, 13:09 |
|
||
|
Изобрёл велосипед
|
|||
|---|---|---|---|
|
#18+
ShSergeКак оно в ИЕ6? работает. Ну раз решено innerHTML оставлять, то можно постепенно перейти к следующему этапу, так горячо мною любимому. Сокращение кода. Предлагаю следующее: Довольно длинная фраза Код: plaintext Код: plaintext Очевидно, что в if(ev.keyCode==38) и в if(ev.keyCode==40) задано одно и то же условие. Объединяем. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. Аналогично очевидно, что monthLeft() и monthRight() - это тоже одна функция, так же как и yearLeft() и yearRight(). Вводим вспомогательный параметр и объединяем. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. итого получим ~-10% в количестве строк и примерно столько же в байтах. P.S. ох, какая симпатичная куча if'ов посреди скрипта... (if((val.length==0)&&(ss.match(reg)))...). Не пойму только с какой стороны к ней подъехать. Жаль бубна нет :-(. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.05.2008, 13:36 |
|
||
|
Изобрёл велосипед
|
|||
|---|---|---|---|
|
#18+
ShSergeПо уму, надо ещё кнопочку в инпуте сделать абсолютно позиционированной и на неё клик повесить а еще по уму надо сделать в дропдауне столбец с названием месяца фиксированной ширины, а то переключаешь месяцы и кнопка под мышом влево-вправо мечется ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.05.2008, 13:39 |
|
||
|
Изобрёл велосипед
|
|||
|---|---|---|---|
|
#18+
Ух-ты! Спасибо. Я конечно сделаю как ты говоришь. Но ведь получается, что ты (а не я) программу и написала, ёлки-палки! illion...надо сделать в дропдауне столбец с названием месяца фиксированной ширины... Да пробовал - всё криво получается. Опять же, это я размер шрифта в цсс прописал, а ведь он может быть разный. По поводу иннерХТМЛ таблички. Я давным-давно под 5 ИЕ писал визуальный редактор для таблиц (количество столбцов и строк менялось на ончанже соотв. инпута), так вот - креате и аппенд чилд помирали уже при 100 строк, а иннерХТМЛ - работал и при 10000 без проблем и почти мгновенно! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.05.2008, 14:16 |
|
||
|
Изобрёл велосипед
|
|||
|---|---|---|---|
|
#18+
ShSergeполучается, что ты (а не я) программу и написала как раз таки до текущего момента я ничего не писала, а совсем даже наоборот (копипаст + delete). Но можно и наваять че-нить. Например добраться до той самой кучи if'ов. В принципе тот кусок можно и сократить вполовину как минимум, но есть еще пара пожеланий относительно ввода дат. Первое. Оставить возможность вводить точку руками. Например: юзер желает ввести дату 2.5.2008 и не желает догадываться о том, что на самом деле оно должно быть 02.05.2008 Второе. Отвлечься от идеи о том, что число в дате обязательно должно начинаться с 0-3, а месяц - с 0-1. Например: юзер хочет ввести дату 9.05.2008, жмет 9 и ничего не происходит. А еще - точка в дате появляется почему-то в неподходящий момент. Т.е. не тогда, когда число или месяц стали двузначными, а в тот момент, когда осуществляется ввод месяца или года. Ну и чтобы не только критиковать, но и содействовать, могу предложить заместо куска Код: plaintext 1. 2. 3. 4. 5. 6. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.05.2008, 15:44 |
|
||
|
Изобрёл велосипед
|
|||
|---|---|---|---|
|
#18+
Забавный метод получения действительной даты из введенной руками. Пишу 31.2.2008, получаю 02.03.2008. Хотя с точки зрения js все логично.... Хм. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.05.2008, 15:50 |
|
||
|
Изобрёл велосипед
|
|||
|---|---|---|---|
|
#18+
ShSerge illion...надо сделать в дропдауне столбец с названием месяца фиксированной ширины...Да пробовал - всё криво получается. Опять же, это я размер шрифта в цсс прописал, а ведь он может быть разный. ну тогда не фиксированной ширины, а кнопки-стрелки ближе к краям дропдауна. Например табличке с навигацией по месяцам/годам задать ширину ~90%, колонкам с кнопками - ширину кнопки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.05.2008, 15:56 |
|
||
|
Изобрёл велосипед
|
|||
|---|---|---|---|
|
#18+
illion...ну тогда не фиксированной ширины... Я ещё не выложил код. Потом выложу, когда внесу изменения. С шириной разобрался с помощью кувалды - присваиваю таблице с месяцем-годом clientWidth таблички с номерами дней (она более-менее фиксированная, т.к. там Пн Вт - самые широкие клеточки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.05.2008, 16:25 |
|
||
|
Изобрёл велосипед
|
|||
|---|---|---|---|
|
#18+
illion...могу предложить заместо куска... Класс! Выложил. Правда ещё не все некрасивости кода убрал и не сократил его (не принципиально). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.05.2008, 17:53 |
|
||
|
Изобрёл велосипед
|
|||
|---|---|---|---|
|
#18+
Это намного лучше, чем подключать многокилобайтные библиотеки из-за календариков, которые в большинстве случаев ещё и платные (с хреновым юзабилити - extjs). Дело в том, что такие календарики нужны всем, но никто их не пишет, потому что времени на это много уходит и требуется некоторая квалификация. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.05.2008, 20:42 |
|
||
|
Изобрёл велосипед
|
|||
|---|---|---|---|
|
#18+
Конечно, я надеюсь, что мы с illion доведём это дело до совершенства (уже почти доведено), а ещё есть integer, float и money. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.05.2008, 22:42 |
|
||
|
Изобрёл велосипед
|
|||
|---|---|---|---|
|
#18+
Так держать. Полтора года назад искал календарик, который можно было бы использовать, но так и не нашел подходящего. Это сможет подойти :) (при необходимости). Немножко поюзал его. Конечно, до совершенства далеко ... Приведу несколько советов (типа как тестер): 1. Более удачным шрифтом будет Verdana - он системный, у всех есть, более округлый и при малых шрифтах лучше выглядит. 2. Кнопки великоваты и аляписты. 3. В ФФ не видно мигания, а в ИЕ при каждом нажатии на стрелки перерисовывается окошко. Как бы от этого избавиться? 4. Ячейки маловаты для шрифта или шрифт великоват для ячеек - не очень уютно. 5. Тескт в ячейках лучше отцентрировать, будет симпатичнее. 6. При выборе даты надо выделить дату и сделать маленькую задержку - 400-600 млсек, будет приятнее для глаза. 7. Это совсем для выпендрежа: окошко сделать сворачивающимся/разворачивающимся - будет смотреться неплохо, только скорость отрегулировать, чтобы и не слишком мигало и чтобы не задерживало ввод даты. 8. Цветовой стиль, а также форма кнопок не соответствуют общему стилю. С ним надо поработать. 9. Насколько понимаю, красным должна выделяться текущая дата. Почему есть красная дата в каждом месяце? - Это не есть правильно. 10. Отработка выделения даты должна осуществляться по onclick, а тут она по onmousedown. Было бы хорошо, чтобы по нажатию на кнопку мыши дата выделялась, но окошко оставалось открытым. А уже при отпускании мыши оно закрывалось. А то нажимаю на кнопку и остаюсь как дурак с нажатой кнопкой посреди странички ... :) (типа как при нажатии стрелок при открытом окошке) Удачи! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.05.2008, 02:00 |
|
||
|
Изобрёл велосипед
|
|||
|---|---|---|---|
|
#18+
ловим баги. Ввожу 8.09.2008. Получаю невесть что (в любом браузере). Оказалось, что parseInt("08") и parseInt("09") возвращают 0, в то время как parseInt("07") == 7, parseInt("06") == 6 и т.д. (а именно эти конструкции используются для определения day и month). Выглядит как бред, то тем не менее. Лечится отказом от parseInt Код: plaintext 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.05.2008, 05:32 |
|
||
|
Изобрёл велосипед
|
|||
|---|---|---|---|
|
#18+
illion...parseInt("08") и parseInt("09") возвращают 0... Известный факт, если с нуля - значит число восьмеричное, поэтому 8 и 9 - NaN, остаётся 0 - хе-хе. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.05.2008, 09:21 |
|
||
|
Изобрёл велосипед
|
|||
|---|---|---|---|
|
#18+
Код: plaintext IDVsbruck 9. Насколько понимаю, красным должна выделяться текущая дата. Неа. Та, что в инпуте. Там просто цсс-класс такой, что колор:ред. IDVsbruck 10. Отработка выделения даты должна осуществляться по onclick, а тут она по onmousedown. Так сделано из-за того, что dropDown закревается при потере фокуса инпута. Например, если пользователь клавиатуру юзает табом. Дизайном я вообще почти не занимался. До этого не дошло. За советы - спасибо. Подключайся. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.05.2008, 11:08 |
|
||
|
Изобрёл велосипед
|
|||
|---|---|---|---|
|
#18+
ShSergeесли с нуля - значит число восьмеричное ну вот, пришлось лезть в описание функции (интересно же, а раньше лень было). Действительно так. Но как оказалось, не всегда удобно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.05.2008, 11:13 |
|
||
|
Изобрёл велосипед
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.05.2008, 12:45 |
|
||
|
Изобрёл велосипед
|
|||
|---|---|---|---|
|
#18+
С оперой была проблема. Теперь - нет и браузер теперь не проверяю. Однако же, с этой самой оперой есть проблема. Как ей запретить обрабатывать управляющие клавиши? Чего-то не получаеццо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.05.2008, 20:29 |
|
||
|
Изобрёл велосипед
|
|||
|---|---|---|---|
|
#18+
А вот в 9.50 beta (токо что установил) - всё работает, как часы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.05.2008, 21:39 |
|
||
|
Изобрёл велосипед
|
|||
|---|---|---|---|
|
#18+
Не - не как часы (хотя получше). Ёлки-палки! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.05.2008, 21:42 |
|
||
|
Изобрёл велосипед
|
|||
|---|---|---|---|
|
#18+
Ура AOL 2.7.13.1 - работает! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.05.2008, 22:32 |
|
||
|
Изобрёл велосипед
|
|||
|---|---|---|---|
|
#18+
Вот и пригодился элементик. Правда, пришлось потратить полдня на его оптимизацию и подгонку. Результат прилагаю. У меня, правда, возникло несколько проблем, так как форма подгружается динамически и это накладывает некоторые особенности в работу. Что нехорошо - это то, что при ручном редактировании строки не срабатывают системные кнопки или сочетания клавиш (F5, Ctrl-F5). Также хочу поделиться наблюдениями. В предложенном варианте при нажатии кнопок изменения месяца и года происходит перерисовка этих кнопок, из-за чего они мигают и это раздражает. Я в ячейки с кнопками вставил background-image и поставил символы < и >. Мигание исчезло совершенно. Еще я привязал div и ячейки к одной ширине, из-за чего теперь визуально клеточки выглядят более правильно - совершенно равными. Ну, и то, что бросается в глаза (мне это более подходит по дизайну сайта) - я разбил строку ввода и кнопку выбора календаря. Теперь надо просто разграничить события и передать в функцию определения событий два элемента. А так - огромное спасибо за идею и практически законченный функционал. Можно, конечно, сделать больший акцент на DOM, а не innerHTML, и сделать элемент полностью на объектах (объектно-ориентированным) - чтобы он сам за собой следил "изнутри", а не навязывать ему действия "извне", но это все развлечения на досуг. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.05.2008, 05:01 |
|
||
|
Изобрёл велосипед
|
|||
|---|---|---|---|
|
#18+
Подзабросил календарик. Сегодня м.б. вернусь к теме. Тем более, что появилась идея сделать числовые (интежер, флоат и мани) инпуты, у которых в дропдауне будет калькулятор (хе-хе). Кстати, может кто подскажет идею как прикрутить конвертор валют (например по курсу ЦБ)? Может кто такое делал? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.05.2008, 09:43 |
|
||
|
|

start [/forum/topic.php?fid=22&msg=35328242&tid=1455836]: |
0ms |
get settings: |
6ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
170ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
68ms |
get tp. blocked users: |
1ms |
| others: | 217ms |
| total: | 494ms |

| 0 / 0 |
