Great Rash
Expert-
Posts
7,974 -
Joined
-
Last visited
-
Days Won
144
Content Type
Profiles
Forums
Calendar
Store
Everything posted by Great Rash
-
Совершенно ничего не понял... this.initMenu() = initMenu(); <-- так писать нельзя, будет ошибка
-
Быть такого не могёт!!! 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); } Только что проверил. Работает точно так же как и с интервалом, т.е. неправильно
-
В общем-то изначально у меня так и было. Смысл от этого особо не меняется.
-
Написал такой код: <?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. Хотя вроде не должен. Или должен? Если должен, то как мне поправить код, чтобы остановить интервал в том случае если мышь на подменю?
-
В хроме все мегаудобно. Лично для меня естественно. 1. Адресная строка (именно туда я набираю вконтакте.ру) 2. Контент страницы (именно для этого мне нужен браузер) 3. Упорядоченное избранное (удобно когда моя вконтакте.ру доступна 2-мя кликами: первый - запустил браузер, второй - открыл страницу) ... ... ... 150. ...еще какая-нибуть приятная мелочь (вроде дебильных микрософтовских "ускорителей") 151. Заголовок (title) страницы (он мне как юзеру не уперся вообще) ^^^ Вот так думает простой юзер. Ну это же бета, и я это понимаю. И даже при этом критичных для меня багов не заметил. Напрягает только отсутствие отладчика, но я и алертами отлаживаюсь совсем не плохо Значит я попался на удочку желтой прессы. Ну что ж, значит у нас появился еще один хороший браузер. Кстати да!
-
Для меня все браузеры умерли сразу после установки Google Chrome. Считаю, что Мозилла скоро умрет из-за того, что она тоже принадлежит гуглю (не пойму для чего им 2 браузера). Опера так никогда и не станет моим фаворитом. В основном из-за того, что уж черезчур часто у нее новые версии выходят и черт его знает как все будет работать под новой Оперой. ИЕ... ну что тут сказать, пока в браузер не превратился. Но уж точно не умрет никогда. 8 версия худо-бедно показывает как надо, но что это за глюны с Аяксом? Почему надо снимать галку "Включить внутреннюю поддержку XMLHttpRequest", чтобы все заработало? Это у меня руки кривые или мелкомягкие опять прикалываются?
-
Ссылка конечно не совсем по теме, но думаю вам Lionel будет интересно почитать эту статью: http://fastcoder.org/articles/?aid=169 А уж если хочется сделать как тут на форуме (так называемые BB-коды), то почтиайте тогда для начала про объект Range. Вот полезная статья на эту тему (инглиш): http://www.quirksmode.org/dom/range_intro.html
-
$('') - грязный хак
-
На торренты клади если уж на то пошло...
-
Фреймворки это зло в чистом виде! Хочу научиться писать фреймворки...
-
Причем тут C++ и веб? Разве C++ не язык десктопных приложений? Всегда считал, что в лучшем случае на нем можно написать CGI-скрипт... Прав/Неправ - нужное подчеркнуть
-
Ну ты и спамер камрад Кажись на депозитфайлах партнерка: получи бабло за определенное количество скачиваний файла?
-
Но английский все равно нужен. Хотя бы, чтобы W3C читать, или там сайты забугорные по каким-либо темам. На наших то сайтах инфы в разы меньше.
-
Ок, спасибо за советы, я буду использовать вашу функцию. 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. Если у кого есть подсказка буду благодарен.
-
О, спасибо! Буду пробовать... хотя с рекурсией у меня туго
-
Есть 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. Но таким макаром я могу бегать только если точно знаю, что у чилда данного нода нет своих чилдов... а вот если у чилда свои чилды, а у них свои, то что тогда делать я не знаю. Может я не так бегу? Наставьте пожалуйста на путь истинный.
-
Ну и сделали бы тогда ему отдельный класс, зачем лишний элемент то?
-
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) УРА!
-
Только Яву я не увидел... и может чего не понял, но как это у ячейки размер 70 пикселей, а у рисунка в ячейке 140 пикселей?
-
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 пробела смотрятся во всех редакторах одинаково, а табуляция - по разному... идиоты. это типа мое ИМХО (просьба не обижаться)
-
Во-первых, нет доктайпа никакого. Во-вторых, после того как вы поставите доктайп загоните ваш код в валидатор (например сюда http://validator.w3.org/#validate_by_input) и поправьте ошибки. Код станет в разы легче. У вас очень много ненужных элементов (<div>, <p>). Скрипты в коде не очень хорошо (если в этом нет крайней необходимости).
-
Перепишите весь код пока не поздно, он ужасен. .someblock { margin: 0 auto; }
-
Да, точно ИЕ обздался
-
Кстати ИЕ7-8 прожевали Вот блин... ну все равно я не такое имел ввиду. У Билли там XML участвует в процессе.
-
Че-то другого выхода кроме как назначить ширину диву-контейнеру я не нашел 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> По количеству элементов одинаково с вашим вариантом. В каждый контейнер можно на бекграунд вставлять картинку. Думаю тут не сложно догадаться куда какую.