Jump to content

Great Rash

Expert
  • Posts

    7,974
  • Joined

  • Last visited

  • Days Won

    144

Everything posted by Great Rash

  1. Совершенно ничего не понял... this.initMenu() = initMenu(); <-- так писать нельзя, будет ошибка
  2. Быть такого не могёт!!! function Menu(parentID) { this.parent = document.getElementById(parentID); this.int = null; this.timeout = 500; this.initMenu(); } Menu.prototype.initMenu = function() { var prnt = this; var uls = this.parent.getElementsByTagName('ul'); for (var i = 0; i < uls.length; i++) { if (uls[i].parentNode.nodeName.toLowerCase() == 'li') { uls[i].parentNode.onmouseover = function() { prnt.openItem(this); } uls[i].parentNode.onmouseout = function() { prnt.closeItem(this); } } } } Menu.prototype.openItem = function(elem) { if (this.int) { clearTimeout(this.int); } elem.getElementsByTagName('ul')[0].style.display = 'block'; } Menu.prototype.closeItem = function(elem) { this.int = setTimeout(function() { elem.getElementsByTagName('ul')[0].style.display = 'none'; }, this.timeout); } Только что проверил. Работает точно так же как и с интервалом, т.е. неправильно
  3. В общем-то изначально у меня так и было. Смысл от этого особо не меняется.
  4. Написал такой код: <?xml version="1.0" encoding="utf-8"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> <head> <title>Menu</title> <meta http-equiv="content-type" content="text/html;charset=utf-8" /> <meta http-equiv="Content-Style-Type" content="text/css" /> <style type="text/css"> * { margin: 0; padding: 0; font: 11px "Trebuchet MS", Verdana, Tahoma, sans-serif; } body { margin: 10px; } ul { list-style: none; } li { float: left; position: relative; margin: 0 5px; } li ul { display: none; position: absolute; width: 100px; border: 1px solid; } li ul ul { display: none; position: absolute; left: 100%; top: 0; } li li { float: none; margin: 0; } </style> <script type="text/javascript"> function Menu(parentID) { this.parent = document.getElementById(parentID); this.int = null; this.timeout = 500; this.initMenu(); } Menu.prototype.initMenu = function() { var prnt = this; var uls = this.parent.getElementsByTagName('ul'); for (var i = 0; i < uls.length; i++) { if (uls[i].parentNode.nodeName.toLowerCase() == 'li') { uls[i].parentNode.onmouseover = function() { prnt.openItem(this); } uls[i].parentNode.onmouseout = function() { prnt.closeItem(this); } } } } Menu.prototype.openItem = function(elem) { if (this.int) { clearInterval(this.int); } elem.getElementsByTagName('ul')[0].style.display = 'block'; } Menu.prototype.closeItem = function(elem) { this.int = setInterval(function() { elem.getElementsByTagName('ul')[0].style.display = 'none'; }, this.timeout); } </script> </head> <body> <ul id="menu"> <li> menu 1 <ul id="q"> <li> submenu 1.1 <ul id="w"> <li> submenu 1.1.1 </li> <li> submenu 1.1.2 </li> </ul> </li> <li> submenu 1.2 </li> <li> submenu 1.3 </li> </ul> </li> </ul> <script type="text/javascript"> new Menu('menu'); </script> </body> </html> Но проблема в том, что подменю второго уровня не хочет оставаться открытым. Такое ощущение, что срабатывает mouseout. Хотя вроде не должен. Или должен? Если должен, то как мне поправить код, чтобы остановить интервал в том случае если мышь на подменю?
  5. В хроме все мегаудобно. Лично для меня естественно. 1. Адресная строка (именно туда я набираю вконтакте.ру) 2. Контент страницы (именно для этого мне нужен браузер) 3. Упорядоченное избранное (удобно когда моя вконтакте.ру доступна 2-мя кликами: первый - запустил браузер, второй - открыл страницу) ... ... ... 150. ...еще какая-нибуть приятная мелочь (вроде дебильных микрософтовских "ускорителей") 151. Заголовок (title) страницы (он мне как юзеру не уперся вообще) ^^^ Вот так думает простой юзер. Ну это же бета, и я это понимаю. И даже при этом критичных для меня багов не заметил. Напрягает только отсутствие отладчика, но я и алертами отлаживаюсь совсем не плохо Значит я попался на удочку желтой прессы. Ну что ж, значит у нас появился еще один хороший браузер. Кстати да!
  6. Для меня все браузеры умерли сразу после установки Google Chrome. Считаю, что Мозилла скоро умрет из-за того, что она тоже принадлежит гуглю (не пойму для чего им 2 браузера). Опера так никогда и не станет моим фаворитом. В основном из-за того, что уж черезчур часто у нее новые версии выходят и черт его знает как все будет работать под новой Оперой. ИЕ... ну что тут сказать, пока в браузер не превратился. Но уж точно не умрет никогда. 8 версия худо-бедно показывает как надо, но что это за глюны с Аяксом? Почему надо снимать галку "Включить внутреннюю поддержку XMLHttpRequest", чтобы все заработало? Это у меня руки кривые или мелкомягкие опять прикалываются?
  7. Ссылка конечно не совсем по теме, но думаю вам Lionel будет интересно почитать эту статью: http://fastcoder.org/articles/?aid=169 А уж если хочется сделать как тут на форуме (так называемые BB-коды), то почтиайте тогда для начала про объект Range. Вот полезная статья на эту тему (инглиш): http://www.quirksmode.org/dom/range_intro.html
  8. $('') - грязный хак
  9. На торренты клади если уж на то пошло...
  10. Фреймворки это зло в чистом виде! Хочу научиться писать фреймворки...
  11. Причем тут C++ и веб? Разве C++ не язык десктопных приложений? Всегда считал, что в лучшем случае на нем можно написать CGI-скрипт... Прав/Неправ - нужное подчеркнуть
  12. Ну ты и спамер камрад Кажись на депозитфайлах партнерка: получи бабло за определенное количество скачиваний файла?
  13. Но английский все равно нужен. Хотя бы, чтобы W3C читать, или там сайты забугорные по каким-либо темам. На наших то сайтах инфы в разы меньше.
  14. Ок, спасибо за советы, я буду использовать вашу функцию. UPD2: Затер весь пост свой. Т.к. написал-таки функцию! Вот, если кому интересно: var html = "<ul>"; function parseXML(dname) { var xmlDoc; if (window.ActiveXObject) { xmlDoc = new ActiveXObject("Microsoft.XMLDOM"); xmlDoc.async = false; xmlDoc.load(dname); return xmlDoc; } else if (window.XMLHttpRequest) { xmlDoc = new window.XMLHttpRequest(); xmlDoc.open("GET", dname, false); xmlDoc.send(""); return xmlDoc.responseXML; } } buildTree(parseXML("test.xml", false).documentElement); function buildTree(elem) { for (var i = 0; i < elem.childNodes.length; i++) { if (elem.childNodes[i].nodeType != 3) { html += "<li>"; html += elem.childNodes[i].nodeName; if (elem.childNodes[i].childNodes.length > 1) { html += "<ul>"; } buildTree(elem.childNodes[i]); if (elem.childNodes[i].childNodes.length > 1) { html += "</ul>"; } html += "</li>"; } } } html += "</ul>"; document.body.innerHTML = html; Все парсит, любой вложенности. Теперь только осталось придумать как все это сделать через document.createElement, а не через element.innerHTML. Если у кого есть подсказка буду благодарен.
  15. О, спасибо! Буду пробовать... хотя с рекурсией у меня туго
  16. Есть XML, не важно какой. Допустим какой-нить тестовый. Я его получаю яваскриптом, при помощи такого кода (взятого с сайта w3schools): function parseXML() { if (window.XMLHttpRequest) { xmlDoc = new window.XMLHttpRequest(); xmlDoc.open("GET","test.xml",false); xmlDoc.send(""); xmlDoc = xmlDoc.responseXML; } else if (ActiveXObject("Microsoft.XMLDOM")) { // IE5, IE6 xmlDoc = new ActiveXObject("Microsoft.XMLDOM"); xmlDoc.async = false; xmlDoc.load("test.xml"); } // в xmlDoc собссно и хранится XML var root = xmlDoc.firstChild; alert(root); } parseXML(); В ИЕ не работает, хотя это не важно. Важно вот что: Как мне распарсить все дерево если я не знаю какой там уровень вложенности тегов? Сейчас я пробегаю по дереву при помощи цикла for. Но таким макаром я могу бегать только если точно знаю, что у чилда данного нода нет своих чилдов... а вот если у чилда свои чилды, а у них свои, то что тогда делать я не знаю. Может я не так бегу? Наставьте пожалуйста на путь истинный.
  17. Ну и сделали бы тогда ему отдельный класс, зачем лишний элемент то?
  18. 1) Ну у вас же есть заголовок первого уровня. Ок, тогда вставляйте <h2>. Я вообще <h6> от балды написал 2) Валидатор W3C говорит, что филдсеты вставлять друг в друга можно. Судя по названию тега, филдсет - это просто сгруппированный набор филдов. А в этом виджете как раз филды разбиты на группы. Так что семантика будет в чистом виде 3) чет я не понял, что имелось ввиду 4) ну сами же написали 5) <div class="copy">©2008-2009 <a href="http://www.design-freak.com">www.design-freak.com</a> & <a href="http://www.lobovkin.ru">www.lobovkin.ru</a></div> так правильно по моему 6) УРА!
  19. Только Яву я не увидел... и может чего не понял, но как это у ячейки размер 70 пикселей, а у рисунка в ячейке 140 пикселей?
  20. This document was successfully checked as XHTML 1.0 Strict! <- This is good!!! А код не нравица... Если уж хочется семантики, то вместо <p> надо вставлять лейблы... ну или хотя б <h6> какой-нить. <div class="color"> можно (опять же если семантики хочется) заменить на тот же <fieldset> <div class="i"><input type="text" value="200" /> <span>px</span> <input type="submit" value="ok" /></div> <!-- C какой целью тут див? --> Таблицу я бы не рекомендовал использовать для вставки в нее элементов формы. Ну это уже чисто мое мнение. <div class="copy"><p>©2008-2009 www.design-freak.com & www.lobovkin.ru</p></div> <!-- C какой целью тут параграф? --> <!-- Я идеалист и мне режет глаз такая запись --> <select><option></option><option></option></select> <!-- Согласитеть, что так красивше --> <select> <option></option> <option></option> </select> <!-- ...и понятней --> Ну и под конец: лично меня просто бесит (и я считаю это отвратительной привычкой) когда программист или верстальщик юзает 4 пробела вместо клавиши TAB! оторвал бы яйца всем авторам книжек которые учат народ так писать, мотивируя это дебильным высказыванием, что мол 4 пробела смотрятся во всех редакторах одинаково, а табуляция - по разному... идиоты. это типа мое ИМХО (просьба не обижаться)
  21. Во-первых, нет доктайпа никакого. Во-вторых, после того как вы поставите доктайп загоните ваш код в валидатор (например сюда http://validator.w3.org/#validate_by_input) и поправьте ошибки. Код станет в разы легче. У вас очень много ненужных элементов (<div>, <p>). Скрипты в коде не очень хорошо (если в этом нет крайней необходимости).
  22. Перепишите весь код пока не поздно, он ужасен. .someblock { margin: 0 auto; }
  23. Great Rash

    XML vs HTML

    Да, точно ИЕ обздался
  24. Great Rash

    XML vs HTML

    Кстати ИЕ7-8 прожевали Вот блин... ну все равно я не такое имел ввиду. У Билли там XML участвует в процессе.
  25. Че-то другого выхода кроме как назначить ширину диву-контейнеру я не нашел UPD: Хотя можно вот такую портянку намутить: <?xml version="1.0" encoding="utf-8"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> <head> <title>Фильтр</title> <meta http-equiv="content-type" content="text/html;charset=utf-8" /> <meta http-equiv="Content-Style-Type" content="text/css" /> <style type="text/css"> * { margin: 0; padding: 0; font: 11px "Trebuchet MS", Verdana, Tahoma, sans-serif; } body { margin: 10px; } .cont { float: left; border: 1px solid; } .cont2 { border: #0f0 1px solid; } .cont3 { border: #f00 1px solid; } .cont4 { padding: 7px 0 3px 0; border: #00f 1px solid; } img { width: 600px; height: 400px; border: #fbf 1px solid; } </style> </head> <body> <div class="cont"> <div class="cont2"> <div class="cont3"> <div class="cont4"> <img src="http://www.psywalker.ru/Forum/z-u/photo.jpg" alt="" /> </div> </div> </div> </div> </body> </html> По количеству элементов одинаково с вашим вариантом. В каждый контейнер можно на бекграунд вставлять картинку. Думаю тут не сложно догадаться куда какую.
×
×
  • 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