Jump to content

AKS

User
  • Posts

    297
  • Joined

  • Last visited

Everything posted by AKS

  1. Да какое, к черту, самолюбие?!! Я лишь прошу не засорять тему рассказами о своих должностях. Неужели не понятно? Раз до сих пор не ясно, напишу еще раз. Пишите по сути дела. И ради бога, найдите в себе силы удержаться от соблазна "козырнуть" своим служебным положением. Если есть желание блеснуть знаниями - давайте показывать их на примерах, используя удобную кнопочку code. ??? Это кто из нас куда кого втянул (или пытается втянуть)??? OK! Наконец-то ближе к делу. Вы зачем принимаете решения за меня? Для того, чтобы реализовать "рюшечки" есть CSS. Опять неверное предположение! Я ведь привел примеры с 4-мя табами, и пусть они будут вложенными. Нет, нет, и еще раз (уже в который) нет! Не более, чем какое-нибудь из ваших заявлений. Взять хотя бы "рассказ" о том, что из тегов при формировании документа нужны лишь DIV, SPAN, A, TABLE (и все запчасти), IMG. И каким образом это вступает в противоречие с логически верной разметкой? Непонимаю. То Вы сами пишите, что из тегов может понадобится лишь пять штук, то вдруг пишите, что Вам не хватает тегов. Темный лес - "более масштабируемое, менее масштабирование". Изначально я писал о простой и понятной структуре данных, которую легко и непринужденно можно трансформировать во что угодно (в данном случае, используя методы DOM).
  2. Я пишу об ограниченном решении, к которому вообще незачем возвращаться в будущем. Если только править баги, которых полно у тех, кто учится на собственных "шишках", выдавая их за опыт. Не понял. Это что за фраза? Хотите оскорбить? Здесь речь не об этом. Мой оппонент изначально отверг вариант с использованием стандартной разметки и логики. Противопоставил этому он свои "шишки" и "костыли" (иных аргументов я не увидел). Так вот давайте с самого начала. В этом Вы с ним согласны? И не спешите, также как и s0rr0w, подчеркнуть свой статус. Я ни в его команду, ни в вашу не прошусь, следовательно не нужно писать, кого Вы выбираете, а кого нет. Еще раз говорю - здесь речь не об этом.
  3. Явное противоречие - о каких "затратах/масштабируемости/реюзабельности" может идти речь, если изначально Вы говорите о максимальной ограниченности решения? Значит то, что я написал в самом начале, касается и Вас. А писал я о том, что люди, отвергающие теорию в пользу своих "шишек", превратили веб в помойку.
  4. Жаль, конечно, что Вы увидели все в таком свете. Я старался, как мог, последовательно отвечая на высказывания о "правоте", не противопоставлять свою "правоту". Посмотрите: Могу признать, что мне наверняка еще рановато преследовать тех выскочек, что пишут: "мой вариант лучше..., только я знаю, как сделать правильно". Но ничего не могу с собой поделать - хочется что-то делать, чтобы люди думали, прежде чем публично высказаться. Ну и, конечно же, смею Вас заверить, что в этой теме не стоит искать готовых решений. Здесь почти с самого начала все ушло в оффтоп (чтобы Вы знали, что я отдаю себе отчет о происходящем). "Лидирует" среди плохих программистов? Неплохо - лучший из худших. Или "лидирует" по "плохости"?
  5. s0rr0w, Вы не отвечаете на вопросы, которые меня интересуют в большей степени, чем описание работы вашего варианта. С чем это связано? "Нагородили" лишнего и необъяснимого? Попытаюсь последний раз, обобщив все ранее заданные мной вопросы. Кто, где и когда признал Вас непререкаемым авторитетом в области веб-разработки? Где та "доска почета", на которой ваши "труды" представлены, как образцы идеально выполненной командной работы? И, наконец, кто или что позволяет Вам твердо верить в собственную непогрешимость? Взять, хотя бы, часть, касающуюся javascript. Заглянул Zeroglif и обнаружил в вашем сценарии кучу ошибок, которые свидетельствуют о вашей (или вашей команды) некомпетентности. Конечно Zeroglif и у меня найдет столько же ошибок (или больше), но я-то себя, в отличии от Вас, не позиционирую эдаким гением разработки. В моем случае очень просто добавить в прототип конструктора какой-нибудь метод, и добавить его вызов в нужном месте. Вообще, я делал по принципу шаблона преобразований (как в случае с xslt). Т.е. если необходимо, то можно написать даже еще один конструктор (или два, или сто два, сколько угодно), и добавить вызов этого (этих) конструкторов. Так ведь в моем случае это сделать еще проще. У меня используются методы addEventListener/attachEvent. Поэтому любое дополнительное преобразование может легко "обвешать" табы своими обработчиками. P.S. Последние комментарии написал не для s0rr0w (его это все мало интересует), а для тех, кто, как оказалось, заглядывает в эту тему.
  6. Я Вас просил не "гадать на кофейной гуще". А Вы наборот, беретесь утверждать, что Вам известны какие-то факты. Решили ко всем прочим своим достоинствам приписать еще и экстрасенсорные способности? Во-первых, в какой именно команде? А во-вторых, если уж на то пошло, опишите мне то, как выглядит этот среднестатистический "командный работник", чтобы мне было на кого равняться. Не хватает, все же, конкретики в высказываниях. Какие грабли? "Так" - это как, и что "происходит"? О чем вообще речь? Что "произошло"? Чей опыт Вы имеете ввиду? Какие именно приоритеты? Что это за "совершенно другое русло"? И что Вы "указали"? Какие домыслы? Чье воображение? Короче говоря, я мало что понял в этих сумбурных высказываниях. Люблю наблюдать, как люди сами себе "ставят оценки"! Зрелище радостное и незабываемое. Я так не умею, поэтому спрошу у того, кто умеет. Я на сколько процентов реализовал задачу? И есть ли в моем варианте "привязка" к каким-либо тегам? Ну и, если можно, подробней пожалуйста - в чем же все-таки "истинная сила" вашего варианта?
  7. Я не писал, что это будет "неправильным структурированием". Вообще, слово "правильный" я употребил вынужденно и в совсем ином контексте. Мне пришлось это сделать тогда, когда Вы завели речь о так называемой "разработке". К написанному выше комментарию добавлю, что я писал: "... удобно так удобно, заставить делать иначе, или хотя бы убедить, я не могу" (можно понимать, как "лепите, как хотите, свои проекты"). С какой же тогда целью Вы, уходя от темы, акцентируете внимание на фактах моей творческой биографии? Да они ведь Вам не были известны, не известны до сих пор, и станут известными никогда! Так что нечего упоминать свои "заслуги перед отечеством", противопостовляя их отсутствию таковых у меня. Пишите по существу! Да, агрументы будут значимы. Главное, пишите по сути дела. А чем плохи эти фразы и эти книги? Вы хотите что-то перефразировать, или вообще переписать стандартные книги по-своему? Так сделайте это! Все станут читать ваши книги и цитировать ваши фразы. Во-первых, что значит "сделать два варианта"? Один вариант уже готов. Вы разве не увидели? А во-вторых, замечу, что "ортодоксальный" - не уместная характеристика стандартной разметки. То, что ваш вариант будет "последним", я понял еще вчера. Лучше напишите, когда его можно будет увидеть.
  8. Что-то я не пойму - мне было предложено одному поучаствовать в соревновании? ))))))))))))) Или бремя выношенных "реально сложных проектов" (которое не тяготит меня, поскольку я - нуб) мешает моему оппоненту взять быстрый старт? ))))))))))))))))))))))
  9. Ну и где мой challenger? ))))))))))))))))))))))) Выложу-ка я сценарий, пока чего не вышло. function Tabs(id, n, i) { this.id = id; this.n = n; this.itms = []; this.ids = {}; this.lays = []; this.init(i); }; Tabs.prototype.init = function (i) { var _ = this, p = '', t = document.getElementById(this.id) .getElementsByTagName(this.n), d = document.createElement('div'), a = document.createElement('a'), m, b; a.href = '#'; for (var k = 0, l = t.length; k < l; k++) { (m = d.appendChild(a.cloneNode(false))) .appendChild((b = t.item(k)).firstChild); this.ids[m.firstChild.nodeValue] = this.itms.push(m) - 1; (this.lays[k] = this.get(b.nextSibling)) .style.display = 'none'; if (k == i) { (this.aLay = this.lays[i]).style.display = 'block'; }; }; b.parentNode.parentNode.insertBefore(d, b.parentNode); (d.addEventListener || (p = 'on', d.attachEvent)) (p + 'click', function (e) { _.click(e); }, false); }; Tabs.prototype.get = function (e) { return (e.nodeType == 1) ? e : arguments.callee(e.nextSibling); }; Tabs.prototype.click = function (e) { var t = e.target || e.srcElement, i = this.ids[t.firstChild.nodeValue]; if (typeof i == 'number') { this.aLay.style.display = 'none'; (this.aLay = this.lays[i]).style.display = 'block'; }; e.preventDefault ? e.preventDefault() : e.returnValue = false; }; Для того, чтобы использовать с разметкой, указанной выше, нужно вставить вслед за блоком с табами вызов конструктора с выражением new. Как я уже писал, в вызов конструктора передается id блока, tagName таба, и номер таба, который должен остаться открытым. Можно так, сразу для двух блоков с табами на странице (можно и для десяти ): <dl id='tabsBlock'> <dt>term 1</dt> <dd>description 1</dd> <dt>term 2</dt> <dd>description 2</dd> </dl> <script type='text/javascript'> /*<![CDATA[*/ new Tabs('tabsBlock', 'dt', 0); /*]]>*/ </script> <div id='tabsBlock2'> <h1>header 1</h1> <div> <p>paragraph</p> <p>paragraph</p> </div> <h1>header 2</h1> <div> <p>paragraph</p> <p>paragraph</p> <p>paragraph</p> </div> </div> <script type='text/javascript'> /*<![CDATA[*/ new Tabs('tabsBlock2', 'h1', 1); /*]]>*/ </script> P.S. Пойду пока прогуляюсь со спокойной душой.
  10. s0rr0w, написал сценарий, и что теперь? Мой сценарий работает с разметкой, типа: <dl id='some ID'> <dt>term 1</dt> <dd>description 1</dd> <dt>term 2</dt> <dd>description 2</dd> </dl> или: <div id='some ID'> <h1>header 1</h1> <div> <p>paragraph</p> <p>paragraph</p> </div> <h1>header 2</h1> <div> <p>paragraph</p> <p>paragraph</p> <p>paragraph</p> </div> </div> Для работы сценария достаточно указать идентификатор главного блока и имя элементов, которые будут вроде табов (в примерах это и ). Как содержимое берется nextSibling этих элементов.Это все. Сложен ли этот сценарий? Будут ли у Big Guns (ребят, работяющих над очень крупными и дорогостоящими проектами) сложности при работе с такой разметкой? Или, быть может, возникнут проблемы с передачей параметров сценарию? Возможно трудно представить, каким образом применить css-правила к такой разметке?
  11. Стандартная "форумная возня". Один говорит о правильном структурировании данных, другой - совсем о другом, о дешевизне и простоте в разработке (ох уж эта меркантильность!). У одного на уме реализация известного принципа "разделение содержания и представления", другой затыкает собеседнику рот безотносительными фразами, типа: "ты явно не работал над реально сложными проектами" (кстати, это обязательно писать, без этого не хватает аргументов?). Как в такой ситуации докопаться до истины? А никак! Да легко, боже мой! Только бесполезно это все...
  12. А Вам придет в голову попытаться сложную структуру преподнести в виде табов? Зачем же удалять? Для того, чтобы что-то скрыть, достаточно использовать css. Да нет, зачем? dl.parentNode.insertBefore(tabs, dl) - возможо как-нибудь так. Об этом я и пишу - выигрыш логической разметки относительно каких-то "костылей". Выглядит вызывающе. На счет усложнения js-кода - это вряд ли. А разбираться должны знающие люди. Никак не представляется возможным оспаривать ваше мнение (тут вспомнился ваш сценарий, в котором вместо маркированного списка для отображения разделов также используются любимые ). Что тут сказать - удобно так удобно, заставить делать иначе, или хотя бы убедить, я не могу.Вообще, подавляющее большинство "писателей" Вас поддержит - всем хочется "удобства". Только для достижения этого удобства нужны недюжинные знания. В противном случае в ход идут "подпорки" из всевозможных "костылей". И именно поэтому количество well-formed документов, имеющихся в сети, ничтожно мало.
  13. Не утруждайте себя подобными просьбами. Я внимателен ровно настолько, что у меня подобных проблем не возникает. Лучше сосредоточтесь на своей проблеме. А именно, раз файл не грузится, надо выяснить почему он не грузится. Например, попытаться переписать так: <script type='text/javascript' src='scripts.js'></script> Если это ничего не изменит, можно попытаться переименовать файл, и т.д...
  14. Вообще, вот это: тоже своего рода классика, причем с большой буквы! Замечательный пример (или урок) для остальных участников форума!
  15. Мои надежды оказались напрасны - я несколько переоценил собеседника: Значит отсутствие взаимопонимания - это не случайность, а закономерность.
  16. BlackCreator, но это ведь не сложно проверить - виноват ли браузер, или еще что-то. Начать, хотя бы, с того, что взять и удостовериться, загружается ли файл сценария, адрес которого указан в src элемента <script>...
  17. .to4ka, очевидно, что Вы не читали "классики", которая называется HOWTO :: Как правильно задавать вопросы. Мой Вам совет - прочтите хотя бы введение. И советую я потому, что уверен - в будущем это значительно облегчит вашу "форумную жизнь".
  18. Глядя на это: curobj.nextSibling.nextSibling можно предположить, что происходит обращение не к тому элементу, который нужен. Такое проиходит в FF из-за текстовых элементов, попадающих в коллекцию дочерних элементов.
  19. При такой постановке вопроса первое, что пришло на ум - это вариант с использованием списка определений: <dl id='some ID'> <dt>term 1</dt> <dd>description 1</dd> <dt>term 2</dt> <dd>description 2</dd> <dt>term 3</dt> <dd>description 3</dd> </dl> Используя известный принцип "разделения содержания и представления" можно получить еще больше преимуществ, ведь сделано главное - создана логически верная (следовательно простая и понятная во всех отношениях) разметка.
  20. Добавьте в мою функцию пару строчек для кроссбраузерности. Или голова до сих пор "больная"?
  21. Если только для IE, то JS можно "сдуть" до минимума (отдавая должное IE): <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>Untitled</title> <style type='text/css'> .mon3 { color:black; } .mon2 { color:red; } #date2, #date3, #date4 { display:expression((document.getElementById(this.id + 'c') || {}) .className == 'mon3' ? 'block' : 'none'); } .none { display:none; } .block { display:block; }; </style> <script type="text/javascript"> function so2(aThis) { var id = arguments.callee.id || 'date2c'; arguments.callee.id = aThis.id; document.getElementById(id).className = 'mon2'; aThis.className = 'mon3'; }; </script> </head> <body> <div> <span class="mon3" id="date2c" onclick='so2(this);'>Вкладка 1 |</span> <span class="mon2" id="date3c" onclick='so2(this);'>Вкладка 2 |</span> <span class="mon2" id="date4c" onclick='so2(this);'>Вкладка 3 |</span> </div> <div class='block' id="date2"> Содержимое вкладки номер один: <table border="1"> <tr> <td>table data</td> <td>table data</td> <td>table data</td> </tr> <tr> <td>table data</td> <td>table data</td> <td>table data</td> </tr> </table> </div> <div class='none' id="date3"> Содержимое вкладки номер два: Аниме убивает ваш мозг! </div> <div class='none' id="date4"> Содержимое вкладки номер три: <h1>труляля</h1> <h2>труляля</h2> <h3>труляля</h3> <h4>труляля</h4> <h5>труляля</h5> <h6>труляля</h6> </div> </body> </html>
  22. Боже мой, за что???
  23. var s = ''; for (var i in orphus) { if (orphus.hasOwnProperty(i)) { s += i + ': ' + orphus[i] + 'n'; }; }; alert(s);
  24. Вот так и надо сделать - "запретить" скрипту обрабатывать поля с пустыми значениями ячейки "До".
×
×
  • 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