Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: Зацените календарь  (Прочитано 9348 раз)
0 Пользователей и 1 Гость смотрят эту тему.
RomCom
Опытный

ru
Offline Offline
Пол: Мужской

WWW
« : 03-12-2005 09:34 » 

Сделал календарь в виде выпадающего меню. Возможно не оригинально, но покопавшись в инете не нашел такого скрипта. Все найденные календари предназначены для выполнения в отдельном окне.
Посмотрите, зацените.
Хотелось бы узнать оценку в плане межбраузерной совместимости. Я испытал скрипт на IE6 и Opere7, работает.
И еще. Мне не удалось сделать скрытие календаря при потере фокуса (что бы выпадающее меню скрывалось когда пользователь переходит на другой элемент страницы). Загвоздка в том, что таблица теряет фокус всякий раз при нажатии на элементе внутри таблицы. Может кто поможет мне, как определить что фокус перешел на другой элемент страницы вне таблицы?

* calendar.zip (2.77 Кб - загружено 914 раз.)
Записан

R.O.M.C.O.M.: Robotic Operational Mathematics and Ceaseless Observation Machine
RXL
Технический
Администратор

Offline Offline
Пол: Мужской

WWW
« Ответ #1 : 03-12-2005 11:41 » 

Замечательно.

Критика:
1) innerText не существует в DOM HTML. Следует использовать innerHTML.
2) использовать font как контейнер - нелогично. Если уж есть у тебя td , то и вкладывай текст в нее, а так же onclick. В inline случаях - используй span. Тег font является устаревшим, но в HTML4.0 описан.
3) названия стилей набираются прописными буквами. Стоит почитать стандарты w3c (не сторонние книжки).
4) множественные (на программу не влияющие) орфографические ошибки ('View' ->> 'Veiw').
5) font-family:Arial. Такой фонт не обязян быть на всех машинах, по сему правильно будет font-family:Arail,sans-serif . Имя 'sans-serif' - не название фонта, а стандартное значение, по которому браузер подберет подходящий фонт.
« Последнее редактирование: 19-12-2007 19:28 от Алексей1153++ » Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
RomCom
Опытный

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #2 : 03-12-2005 15:46 » 

Спасибо за критику.
С использованием td как контейнера у меня возникли трудности, функция смены цвета текста при наведении мыши, не работает:
Код:
this.fToggleColor=function(num)
 {
  var toggleColor = "#ff0000";
  var objCellText= new Object(); //Объект td
  objCellText=element(this.CellId+num);
  if(objCellText.color == toggleColor)
  { objCellText.color = ""; }
else
{ objCellText.color = toggleColor; }
 }
В чем моя ошибка?
Что значит "В inline случаях"?
Записан

R.O.M.C.O.M.: Robotic Operational Mathematics and Ceaseless Observation Machine
RXL
Технический
Администратор

Offline Offline
Пол: Мужской

WWW
« Ответ #3 : 03-12-2005 16:08 » 

6) зачем такие сложности:var objCellText= new Object(); objCellText=element(this.CellId+num);
Не проще ли var objCellText = element(this.CellId+num); ?

7) вот тебе и управление цветом. Опять же, смотри в сторону CSS, а про устаревающие свойства лучше забывать по маленьку - больше гимора с совместимостью. Поддерживать совместимость с N4 и IE4 я считаю лишним - это очень убогие браузеры, давно и безнадежно устаревшие.
Код:
this.fSetColor1 = function(num)
 {
element(this.CellId+num).style.color = "#ff0000";
 }

 this.fSetColor2 = function(num)
 {
element(this.CellId+num).style.color = "";
 }

// ....

 document.write("<td id='" + this.CellId + num + "'"
   + " class='calCell' align='center' valign='center' width='17' height='15'"
   + " onmouseover='" + this.calName + ".fSetColor1(" + num + ");'"
   + " onmouseout='" + this.calName + ".fSetColor2(" + num + ");'"
   + " onclick='" + this.calName + ".fSetSelectedDay(" + num + ");'>"
   );

8) атрибуты HTML то же пишутся прописными буквами. HTML 4.0 допускает и те и другие, а XHTML - требует. Лучше приделживаться более современных стандартов.

9) если ты пределяешь CSS-классы, то зачем тебе атрибуты, описывающие внешний вид, в теге? Это только захламляет код.
« Последнее редактирование: 19-12-2007 19:30 от Алексей1153++ » Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
RomCom
Опытный

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #4 : 04-12-2005 12:43 » 

Подредактировал.
Возник еще вопрос: можно ли изменить в javascript-е CSS класс элемента, т.е. не изменять атребуты стиля по отдельности, а поменять CSS класс элемента?

* calendar.zip (2.78 Кб - загружено 916 раз.)
Записан

R.O.M.C.O.M.: Robotic Operational Mathematics and Ceaseless Observation Machine
RXL
Технический
Администратор

Offline Offline
Пол: Мужской

WWW
« Ответ #5 : 04-12-2005 21:41 » new

Конечно: HTMLElement.className = 'css_class';
« Последнее редактирование: 19-12-2007 19:32 от Алексей1153++ » Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines