Jump to content

s0rr0w

User
  • Posts

    5,139
  • Joined

  • Last visited

  • Days Won

    32

Everything posted by s0rr0w

  1. Маркеры и будут лезть на картинку. Это правильное поведение. Как избежать? Перенос маркеров в зону padding'а
  2. А можно сделать одну функцию, которая будет проверять наличие имени класса среди всей строки className, что уберет кучу дальнейших проблем с переделками. Отлично придумано! И при каждом чихе вы будете переписывать функцию? Отличный подход! Если брать статический HTML, то ничего. Если брать генерируемый сервером код, то решение явно неудобное. Чтобы подключить модуль, который будет требовать обработчика onload события, потребуется или специальный модуль наполнения этого обработчика, или ручной труд. Это дополнительная и никому не нужная работа. Этого можно избежать.
  3. Дырки в идентификаторах должны мало волновать, так как при выборке будет возвращен массив данных без дырок.
  4. Неверное толкование. Разговор сводится к другому. Представьте, что вы строите суперкар. Вам дали некого робота сборщика. Его задача - облегчить ваш труд по сборке. Робот умеет скручивать детали, приваривать их одну к другой, может красить детали, может разбирать детали автоматически. Вы решаете, что робот вам серьезно облечит задачу, и начинаете пробовать им пользоваться. Вы собираете какую-то часть, на первом этапе вам кажется, что вы закончите работу очень быстро, все продвигается хорошо, готовы базовые куски. Но через время вы начинаете мыслить категориями функциональности робота. Вместо простого решения вы начинаете создавать сложные команды, потому что вам все еще кажется, что робот ускоряет вам работу. Так как костылей в работе становится больше, суперкар теряет легкость и красоту, потому что робот не смог что-то реализовать. А достаточно было собрать самое трудное роботом, а дальше сменить робота или выполнить все руками при помощи обычных инструментов. Достаточно разбить задачу на массу мелких, и ее решать станет намного легче.
  5. XAOPT, спасибо за решение! Давай теперь посмотрим на твои ошибки. Самая первая ошибка - ты начал делать что-то, но ты был не сильно уверен, правильно ты ты что-то делаешь, или нет. Что я ждал от тебя - вопросы. Много много вопросов. Особенно одного - а зачем все это нужно? Уточняю ТЗ. | switch 1 | cell 2 | cell 3 | ... | cell n | ——————————————- | контейнер | ——————————————- | switch 2 | cell 2 | cell 3 | ... | cell n | | switch 3 | cell 2 | cell 3 | ... | cell n | Выглядеть должно примерно так. Теперь по коду. Почему ты используешь идентификатор TR в качестве идентификатора строки? obj.parentNode.parentNode.id; При изменении кода HTML придется перерабатывать и JS код. Если тебе нравится из-за одной правки искать еще 250 мест, где это нужно поправить, то ты можешь и дальше пользоваться такими приемами, но, скорее всего, ты будешь неэффективным кодером в команде. Такой код - верный путь к багам. Заказчики будут не рады. bBox.style.display == 'block' ? bBox.style.display = 'none' : bBox.style.display = 'block'; А что, если это будет не блочный элемент, а, например, TD? Ты понимаешь последствия такого прямого присвоения? На этом форуме несколько раз было показано правильное решение. Что будет, если объект bBox будет трагически убит другим скриптом? Пользователи будут не рады увидеть сообщение об ошибке. Давай избавимся от недостатков, и сделаем скрипт немного гибче. И вернемся в рамки ТЗ. Много подсказок давать не буду, так как дойти до верных решений самому - это будет лучшей наградой для вас.
  6. n много, пусть будет m
  7. if (labels[i].className == 'overlabel') ... labels[i].className = 'overlabel-apply'; А если понадобится использовать больше классов для лейбла? window.onload = function () { setTimeout(initOverLabels, 50); }; А если мне нужно будет на странице использовать еще какие-то функции, которые будут загружаться по onload'у?
  8. Что за привычка использовать протокол javascript в href атрибуте? Народ не знает про return false в onclick?
  9. Ну, косвенно имеет. Если к каждому запросу новой страницы приплюсовывать данные о размере окна, то можно оптимизировать вывод информации не на уровне CSS или JS, а на уровне HTML-кода. CSS или JS может оказаться в несколько раз массивнее, глючнее и неудобнее, чем просто поменять на уровне сервера исходную разметку. Так что не факт, не факт, что отношение не имеет.
  10. Что, никому не интересно набраться опыта коллективной разработки? Или опыта создания нормальных скриптов, а не одноразовых китайских поделок?
  11. Easy, man! Задача решаемая и, иногда, даже полезная. С одним но. Ее не надо решать в данном случае
  12. А если пользователь уменьшит размер окна? А что будет у тех, кто использует повернутый экран для просмотра страниц, и у них разрешение 1200на1600? Прежде чем что-то делать, все же стоит подумать, а нужно ли кому-то это?
  13. Цель мини-конкурса проста - по-новому посмотреть на привычные вещи. Звучит странно? Отнюдь! При промышленном производстве кода остается очень мало времени на развитие. И не всегда хватает времени на то, чтобы посидеть и подумать над тем, как что-то реализовать так, чтобы это было более-менее правильно. Этот конкурс с довольно странным призом, но получить его могут многие. Если точнее, то призом будет бесценный опыт в решениях подобных задач и проблем. Хотите больше опыта? Просто принимайте участие. Согласен, что тяжелее всего будет самому первому смельчаку, который отважится на создание первого прототипа, но никто не запрещает делать несколько прототипов, постоянно улучшая свой или чужой код. Правила просты. Я создаю некое подобие ТЗ. Это неточная формулировка какой-либо задачи (добавим чуток реализма, в жизни в 95% отсутствует не только ТЗ, но и понимание того, что хочет получить заказчик на выходе). Вы решаете эту задачу так, как вы бы ее решили, и выкладываете код в виде файла или текста сообщения. Мы коллективно исследуем код, задаем вопросы, подсказываем как надо решить. А потом выбираем победителя конкурса. Разрешено улучшать чужой код. Мало того, это даже приветствуется. Разрешено использовать фреймворки и библиотеки. Запрещено корчить из себя умника без адекватного подтверждения своих слов. Ну что, попробуем? Задача №1. Создаем приложение. Есть таблица на n строк. В какой-либо ячейке таблицы может стоять "переключатель", который создает или убирает контейнер под строкой таблицы, в которой и содержится переключатель. Нужно каким-либо способом передать некий идентификатор строки таблицы в показываемый контейнер.
  14. s0rr0w

    про hover

    Уважаемый, для того, чтобы вы понимали то, что вам говорят, нужно ну хоть немного подучить матчасть. Если вам выдадут готовое решение, то толку от этого будет немного. Если вы своей головой подумаете, почитаете хотя бы данный ресурс, то через очень короткое время вы поймете все, что вам было сказано.
  15. Внимательнее читайте
  16. Есть таблица. В таблице 3 колонки и несколько строк. В первой колонке каждой строки стоит кнопка. При нажатии на кнопку под строкой появляется контейнер, в котором будет находиться произвольный контент, но нам достаточно того, чтобы там находился ID строки, где нажади кнопку. Повторное нажатие на кнопку скроет контейнер. Решите задачу при помощи фреймворков, а мы потом ее разберем по полочкам.
  17. Хотите, я на вашем примере докажу, что фреймворки изменяют мышление? Истинный смысл топа - показать другое решение.
  18. s0rr0w

    про hover

    Копать в сторону бордера для UL
  19. Он хорош, но, к сожалению, требует кучу ручной работы. Не получится играться размером текста. Когда будет необходимо фоновое изображение для инпута, его нельзя будет вставить. Но он прост. Это плюс.
  20. Одна из ошибок мышления большинства отписавшихся заключается в том, что все пытаются решить задачу с исходными данными. А ведь намного легче решать задачу, если изменить исходные данные, и тогда решение может быть куда лучше, проще для изменений, иметь меньше багов и глюков.
  21. <style type="text/css"> .hiddenBlock { display: none } </style> <input type="text" onfocus="this.className='hiddenBlock'; this.nextSibling.className=''; this.nextSibling.focus();" value="Pass"><input type="password" onblur="if( this.value == ''){ this.className='hiddenBlock'; this.previousSibling.className='' }" value="" class="hiddenBlock">
  22. Зачем вложенность блоков? Этому есть разумное обоснование?
  23. Лично мое мнение. Выпадающие меню - самое неудобное, что можно себе представить. Дерево гораздо удобнее и нагляднее, а также проще, не требует много кода.
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy