>Форум Mozilla Россия http://forum.mozilla-russia.org/index.php >Разработка http://forum.mozilla-russia.org/viewforum.php?id=18 >Javascript+DOM+event http://forum.mozilla-russia.org/viewtopic.php?id=5704 |
rewue > 21-10-2005 17:47:40 |
При написании сайта возникла проблемы такого рода: При загрузке страницы формируется таблица скриптом и вставляется с помощью метода innerHTML в div. Так вот на двух одинаковых версиях браузера (1,0,7) - работает по разному -на одной машине все нормально работает и табличка формируется, на другой (мне почему то кажется что из-за 2 го сервис пака Винды) - табличка не формируется вообще. Консоль при этом молчит. Второй глюк - по нажатию на заголовок следующий за ним список должен развернуться или свернуться (в зависимости от флажка). Вопрос каким образом обойти свойство nextSibling. Впрямую адресоваться к списку я немогу - он не всегда отображаеся. Как обрабатывается событие евент для Файрфокса? |
Snik > 21-10-2005 18:39:54 |
Если браузер и страница одинаковые, то дело в настройках. Может, на 2-м JavaScript просто отключен?
Эта, примерчик-бы. А то что-то не пойму, в чем проблема.
http://developer.mozilla.org/en/docs/DOM:event |
Unghost > 22-10-2005 00:19:37 |
==> Разработка |
rewue > 22-10-2005 10:00:27 |
2 administrator Что касается разворачивания. Есть заголовок, который и вызывает эту функцию. По нажатию на него список должен либо свернуться либо развернуться. Выделить код Код:var flag=true; function accordeon(el) { if(flag) { el.nextSibling.style.display="none"; flag=false; } else { el.nextSibling.style.display="block"; flag=true; } } |
profiT > 22-10-2005 11:12:44 |
А зачем нужен флаг? Не проще ли написать: Выделить код Код:function accordeon(el) { with (el.nextSibling.style) display=(display=="none")?"block":"none"; } НО! Очень возможно, что nextSibling'ом у вас не ожидаемый следующий <li>, а узел типа #text (перевод строки, случайный пробели и т.д.). Надо это дело обходить. |
Snik > 22-10-2005 11:56:10 |
rewue Выделить код Код:function accordeon(el) { var NextEl=el.nextSibling; while (NextEl.tagName!='UL') NextEl=NextEl.nextSibling; with (NextEl.style) display=(display=="none")?"block":"none"; } |
rewue > 23-10-2005 14:39:20 |
profiT пишет
Следующий узел точно не текстовый - проверено. Да этих елементов 4 штуки и в одном так и было, но в остальных все нормально... |
rewue > 23-10-2005 14:47:17 |
Народ, я вот сходил по ссылке, что мне Snik дал и чего то я там не догоняю. Вроде как обработчик написан правильно а ничего не работает... Вот что мне нужно |
rewue > 23-10-2005 15:02:50 |
И вдогонку - а нет ли документации одним файликом? ПДФ или СНМ... |
Anton > 23-10-2005 16:57:07 |
rewue пишет
? |
Snik > 23-10-2005 18:22:49 |
rewue
Сегодня нет, а завтра - есть. Вдруг строчку перенести захочется? Дополнительную проверку и защиту от дурака в программировании никто не отменял. Выделить код Код:var tags = document.getElementsByTagName("H1"); for (var i=0; i<tags.length; i++) { (tags[i]).onclick=ClickProcessingFunction; } } |
rewue > 24-10-2005 12:33:19 |
2 Snick Блин все заработало... Просто я обозвал дивижн куда вставляю таблицу зарезервированным именем и из-за этого все скрипты перестали работать под Фоксом... |
Snik > 27-10-2005 17:45:31 |
rewue |
rewue > 28-10-2005 15:01:48 |
это не ошибка... Это глюк, просто при включенном ДТД любом - ни один браузер не хочет для абсолютно опзиционированного дивижна использовать свойство height/// |
rewue > 30-10-2005 16:26:08 |
Все проблема решилась и с ДТД... просто надо было правильно написать свойство. |