AKS
User-
Posts
297 -
Joined
-
Last visited
Content Type
Profiles
Forums
Calendar
Store
Everything posted by AKS
-
Да какое, к черту, самолюбие?!! Я лишь прошу не засорять тему рассказами о своих должностях. Неужели не понятно? Раз до сих пор не ясно, напишу еще раз. Пишите по сути дела. И ради бога, найдите в себе силы удержаться от соблазна "козырнуть" своим служебным положением. Если есть желание блеснуть знаниями - давайте показывать их на примерах, используя удобную кнопочку code. ??? Это кто из нас куда кого втянул (или пытается втянуть)??? OK! Наконец-то ближе к делу. Вы зачем принимаете решения за меня? Для того, чтобы реализовать "рюшечки" есть CSS. Опять неверное предположение! Я ведь привел примеры с 4-мя табами, и пусть они будут вложенными. Нет, нет, и еще раз (уже в который) нет! Не более, чем какое-нибудь из ваших заявлений. Взять хотя бы "рассказ" о том, что из тегов при формировании документа нужны лишь DIV, SPAN, A, TABLE (и все запчасти), IMG. И каким образом это вступает в противоречие с логически верной разметкой? Непонимаю. То Вы сами пишите, что из тегов может понадобится лишь пять штук, то вдруг пишите, что Вам не хватает тегов. Темный лес - "более масштабируемое, менее масштабирование". Изначально я писал о простой и понятной структуре данных, которую легко и непринужденно можно трансформировать во что угодно (в данном случае, используя методы DOM).
-
Я пишу об ограниченном решении, к которому вообще незачем возвращаться в будущем. Если только править баги, которых полно у тех, кто учится на собственных "шишках", выдавая их за опыт. Не понял. Это что за фраза? Хотите оскорбить? Здесь речь не об этом. Мой оппонент изначально отверг вариант с использованием стандартной разметки и логики. Противопоставил этому он свои "шишки" и "костыли" (иных аргументов я не увидел). Так вот давайте с самого начала. В этом Вы с ним согласны? И не спешите, также как и s0rr0w, подчеркнуть свой статус. Я ни в его команду, ни в вашу не прошусь, следовательно не нужно писать, кого Вы выбираете, а кого нет. Еще раз говорю - здесь речь не об этом.
-
Явное противоречие - о каких "затратах/масштабируемости/реюзабельности" может идти речь, если изначально Вы говорите о максимальной ограниченности решения? Значит то, что я написал в самом начале, касается и Вас. А писал я о том, что люди, отвергающие теорию в пользу своих "шишек", превратили веб в помойку.
-
Жаль, конечно, что Вы увидели все в таком свете. Я старался, как мог, последовательно отвечая на высказывания о "правоте", не противопоставлять свою "правоту". Посмотрите: Могу признать, что мне наверняка еще рановато преследовать тех выскочек, что пишут: "мой вариант лучше..., только я знаю, как сделать правильно". Но ничего не могу с собой поделать - хочется что-то делать, чтобы люди думали, прежде чем публично высказаться. Ну и, конечно же, смею Вас заверить, что в этой теме не стоит искать готовых решений. Здесь почти с самого начала все ушло в оффтоп (чтобы Вы знали, что я отдаю себе отчет о происходящем). "Лидирует" среди плохих программистов? Неплохо - лучший из худших. Или "лидирует" по "плохости"?
-
s0rr0w, Вы не отвечаете на вопросы, которые меня интересуют в большей степени, чем описание работы вашего варианта. С чем это связано? "Нагородили" лишнего и необъяснимого? Попытаюсь последний раз, обобщив все ранее заданные мной вопросы. Кто, где и когда признал Вас непререкаемым авторитетом в области веб-разработки? Где та "доска почета", на которой ваши "труды" представлены, как образцы идеально выполненной командной работы? И, наконец, кто или что позволяет Вам твердо верить в собственную непогрешимость? Взять, хотя бы, часть, касающуюся javascript. Заглянул Zeroglif и обнаружил в вашем сценарии кучу ошибок, которые свидетельствуют о вашей (или вашей команды) некомпетентности. Конечно Zeroglif и у меня найдет столько же ошибок (или больше), но я-то себя, в отличии от Вас, не позиционирую эдаким гением разработки. В моем случае очень просто добавить в прототип конструктора какой-нибудь метод, и добавить его вызов в нужном месте. Вообще, я делал по принципу шаблона преобразований (как в случае с xslt). Т.е. если необходимо, то можно написать даже еще один конструктор (или два, или сто два, сколько угодно), и добавить вызов этого (этих) конструкторов. Так ведь в моем случае это сделать еще проще. У меня используются методы addEventListener/attachEvent. Поэтому любое дополнительное преобразование может легко "обвешать" табы своими обработчиками. P.S. Последние комментарии написал не для s0rr0w (его это все мало интересует), а для тех, кто, как оказалось, заглядывает в эту тему.
-
Я Вас просил не "гадать на кофейной гуще". А Вы наборот, беретесь утверждать, что Вам известны какие-то факты. Решили ко всем прочим своим достоинствам приписать еще и экстрасенсорные способности? Во-первых, в какой именно команде? А во-вторых, если уж на то пошло, опишите мне то, как выглядит этот среднестатистический "командный работник", чтобы мне было на кого равняться. Не хватает, все же, конкретики в высказываниях. Какие грабли? "Так" - это как, и что "происходит"? О чем вообще речь? Что "произошло"? Чей опыт Вы имеете ввиду? Какие именно приоритеты? Что это за "совершенно другое русло"? И что Вы "указали"? Какие домыслы? Чье воображение? Короче говоря, я мало что понял в этих сумбурных высказываниях. Люблю наблюдать, как люди сами себе "ставят оценки"! Зрелище радостное и незабываемое. Я так не умею, поэтому спрошу у того, кто умеет. Я на сколько процентов реализовал задачу? И есть ли в моем варианте "привязка" к каким-либо тегам? Ну и, если можно, подробней пожалуйста - в чем же все-таки "истинная сила" вашего варианта?
-
Я не писал, что это будет "неправильным структурированием". Вообще, слово "правильный" я употребил вынужденно и в совсем ином контексте. Мне пришлось это сделать тогда, когда Вы завели речь о так называемой "разработке". К написанному выше комментарию добавлю, что я писал: "... удобно так удобно, заставить делать иначе, или хотя бы убедить, я не могу" (можно понимать, как "лепите, как хотите, свои проекты"). С какой же тогда целью Вы, уходя от темы, акцентируете внимание на фактах моей творческой биографии? Да они ведь Вам не были известны, не известны до сих пор, и станут известными никогда! Так что нечего упоминать свои "заслуги перед отечеством", противопостовляя их отсутствию таковых у меня. Пишите по существу! Да, агрументы будут значимы. Главное, пишите по сути дела. А чем плохи эти фразы и эти книги? Вы хотите что-то перефразировать, или вообще переписать стандартные книги по-своему? Так сделайте это! Все станут читать ваши книги и цитировать ваши фразы. Во-первых, что значит "сделать два варианта"? Один вариант уже готов. Вы разве не увидели? А во-вторых, замечу, что "ортодоксальный" - не уместная характеристика стандартной разметки. То, что ваш вариант будет "последним", я понял еще вчера. Лучше напишите, когда его можно будет увидеть.
-
Что-то я не пойму - мне было предложено одному поучаствовать в соревновании? ))))))))))))) Или бремя выношенных "реально сложных проектов" (которое не тяготит меня, поскольку я - нуб) мешает моему оппоненту взять быстрый старт? ))))))))))))))))))))))
-
var Text="Hello"; ..... alert(Test) ?
-
Ну и где мой 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. Пойду пока прогуляюсь со спокойной душой.
-
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-правила к такой разметке?
-
Стандартная "форумная возня". Один говорит о правильном структурировании данных, другой - совсем о другом, о дешевизне и простоте в разработке (ох уж эта меркантильность!). У одного на уме реализация известного принципа "разделение содержания и представления", другой затыкает собеседнику рот безотносительными фразами, типа: "ты явно не работал над реально сложными проектами" (кстати, это обязательно писать, без этого не хватает аргументов?). Как в такой ситуации докопаться до истины? А никак! Да легко, боже мой! Только бесполезно это все...
-
А Вам придет в голову попытаться сложную структуру преподнести в виде табов? Зачем же удалять? Для того, чтобы что-то скрыть, достаточно использовать css. Да нет, зачем? dl.parentNode.insertBefore(tabs, dl) - возможо как-нибудь так. Об этом я и пишу - выигрыш логической разметки относительно каких-то "костылей". Выглядит вызывающе. На счет усложнения js-кода - это вряд ли. А разбираться должны знающие люди. Никак не представляется возможным оспаривать ваше мнение (тут вспомнился ваш сценарий, в котором вместо маркированного списка для отображения разделов также используются любимые ). Что тут сказать - удобно так удобно, заставить делать иначе, или хотя бы убедить, я не могу.Вообще, подавляющее большинство "писателей" Вас поддержит - всем хочется "удобства". Только для достижения этого удобства нужны недюжинные знания. В противном случае в ход идут "подпорки" из всевозможных "костылей". И именно поэтому количество well-formed документов, имеющихся в сети, ничтожно мало.
-
Не утруждайте себя подобными просьбами. Я внимателен ровно настолько, что у меня подобных проблем не возникает. Лучше сосредоточтесь на своей проблеме. А именно, раз файл не грузится, надо выяснить почему он не грузится. Например, попытаться переписать так: <script type='text/javascript' src='scripts.js'></script> Если это ничего не изменит, можно попытаться переименовать файл, и т.д...
-
Вообще, вот это: тоже своего рода классика, причем с большой буквы! Замечательный пример (или урок) для остальных участников форума!
-
Мои надежды оказались напрасны - я несколько переоценил собеседника: Значит отсутствие взаимопонимания - это не случайность, а закономерность.
-
BlackCreator, но это ведь не сложно проверить - виноват ли браузер, или еще что-то. Начать, хотя бы, с того, что взять и удостовериться, загружается ли файл сценария, адрес которого указан в src элемента <script>...
-
.to4ka, очевидно, что Вы не читали "классики", которая называется HOWTO :: Как правильно задавать вопросы. Мой Вам совет - прочтите хотя бы введение. И советую я потому, что уверен - в будущем это значительно облегчит вашу "форумную жизнь".
-
Глядя на это: curobj.nextSibling.nextSibling можно предположить, что происходит обращение не к тому элементу, который нужен. Такое проиходит в FF из-за текстовых элементов, попадающих в коллекцию дочерних элементов.
-
При такой постановке вопроса первое, что пришло на ум - это вариант с использованием списка определений: <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> Используя известный принцип "разделения содержания и представления" можно получить еще больше преимуществ, ведь сделано главное - создана логически верная (следовательно простая и понятная во всех отношениях) разметка.
-
Добавьте в мою функцию пару строчек для кроссбраузерности. Или голова до сих пор "больная"?
-
Если только для 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>
-
Боже мой, за что???
-
var s = ''; for (var i in orphus) { if (orphus.hasOwnProperty(i)) { s += i + ': ' + orphus[i] + 'n'; }; }; alert(s);
-
Вот так и надо сделать - "запретить" скрипту обрабатывать поля с пустыми значениями ячейки "До".