Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Мои вопросы по JavaScript [3]
Форумы портала PHP.SU » Клиентская разработка » JavaScript & VBScript » Мои вопросы по JavaScript

Страниц (5): « 1 2 [3] 4 5 »
 

31. Bio man - 22 Апреля, 2012 - 01:40:34 - перейти к сообщению
tuareg пишет:
window.onload
сработало! Как я понял загрузка будет только 1 раз при открытии окна браузера. Мне же нужно динамически менять содержимое по клику на кнопочки не перезагружая страницу. можно такое сделать? Или мы зря стараемся?
32. LIME - 22 Апреля, 2012 - 01:42:34 - перейти к сообщению
tuareg да действительно
Bio man можно конечно
как задумано?
по клику след. узел показывать?
33. tuareg - 22 Апреля, 2012 - 01:43:17 - перейти к сообщению
Можно все. Я бы сделал так. При загрузке страницы, сразу бы распарсил весь xml. и сохранил в переменные. А уже потом по кликам подставлял эти данные.
34. Bio man - 22 Апреля, 2012 - 01:45:45 - перейти к сообщению
LIME, да. Есть кнопочки вперед, назад. Вперед это следующий узел, назад предыдущий. И еще задуманы ссылочки, на которые нажимаешь и показывается произвольный узел.
35. LIME - 22 Апреля, 2012 - 01:54:13 - перейти к сообщению
CODE (javascript):
скопировать код в буфер обмена
  1. <script type="text/javascript">
  2. var xml = '<?xml version="1.0"?><root><material id="1"><head>Немного теории</head><content><img class="lbox" src="images/DaVinci.jpg" style="float: left; padding: 5px; height: 50%;" /><p><strong>Симме&#769;три&#769;я</strong>, в широком смысле — соответствие, неизменность (инвариантность), проявляемые при каких-либо изменениях, преобразованиях.</p><p>Отсутствие или нарушение симметрии называется <strong>асимметри&#769;ей</strong>.</p><p>В математике — симметрийные свойства описываются с помощью <em>теории групп</em>.</p><p>Симметрии могут быть <em>точными</em> или <em>приближёнными</em>.</p></content></material><material id="2"><head></head><content></content></material></root>';
  3. var xml2=XML.parse(xml);
  4. function getNext(xml2,numberItem) {
  5.         var head=xml2.getElementsByTagName('head').item(numberItem).firstChild.nodeValue;
  6.     document.getElementById('head').innerHTML = head;
  7. }
  8. </script>
  9. <div id="head"></div><a href="#" onclick="getNext(xml2,0);">первая</a>
для ссылки можно и в хреф вызов прописать
я показал общий случай
дальше сам допилишь
(Добавление)
хотя лучше конечно массив заполнить
CODE (html):
скопировать код в буфер обмена
  1. var xml2=XML.parse(xml);
  2. var arr=xml2.getElementsByTagName('head');
  3. function getNext(nod) {
  4.         var head=nod.firstChild.nodeValue;
  5.     document.getElementById('head').innerHTML = head;
  6. }
  7. </script>
  8. <div id="head"></div><a href="#" onclick="getNext(arr[0]);">первая</a>

(Добавление)
а можно пройтись по массиву и поменять значение каждого элемента
arr[i]=arr[i].firstChild.nodeValue;
это стоит делать если кнопочки будут активно юзаться
36. Bio man - 22 Апреля, 2012 - 12:55:31 - перейти к сообщению
LIME, спасибо огромное. Вот как получить количество элементов material или head?
(Добавление)
Как быть? В содержимом content есть HTML теги и из-за них ничего не выводится! Если вписать простой текст то все ок, а вот с тегами не хочет.
Вот код
Спойлер (Отобразить)

Кнопочки
CODE (html):
скопировать код в буфер обмена
  1. <button id="prev" onclick="getNext(xml2,numberr(--i));"><img class="navbut" src="images/prev1.png" /></button>
  2.                 <button autofocus id="next" onclick="getNext(xml2,numberr(++i));"><img class="navbut" src="images/next1.png" /></button>
37. Bio man - 22 Апреля, 2012 - 15:03:49 - перейти к сообщению
Урааа! Получилось, заменил сущности на эквиваленты и заработало.
(Добавление)
Спасайте! После того как я изменил теги на эквиваленты
Спойлер (Отобразить)
перестал работать Lightbox! Подозреваю, что это из за этих сущностей. Но ведь в браузере все корректно отображается, и картинка видна но при клике на нее она просто открывается в пустом окне а не с помощью Lightbox! Как сделать, что бы заработало?
(Добавление)
Спасайте! В переменную попадает нормальный текст, без сущностей! Все хорошо отображается но LightBox не работает!
38. DelphinPRO - 22 Апреля, 2012 - 16:12:09 - перейти к сообщению
Bio man заменять сущности на эквиваленты не нужно вручную Улыбка
для этого есть CDATA

<content><![CDATA[<a href="">bla bala</a>]]></content>

ps/ однако, это скорее всего не решит проблему с лайтбоксом
39. Bio man - 22 Апреля, 2012 - 16:23:43 - перейти к сообщению
DelphinPRO пишет:
<content><![CDATA[<a href="">bla bala</a>]]></content>
Не работает. Как с лайтбоксом быть?
(Добавление)
такая мысль - добавить событие onclick в ссылку и в нем вызвать лайтбокс, тока понятия не имею как это сделать
40. LIME - 22 Апреля, 2012 - 17:07:14 - перейти к сообщению
ну вывод сделать можно
только внутренне теги не работают
CODE (javascript):
скопировать код в буфер обмена
  1. var arr=xml2.getElementsByTagName('head');
  2. var arrContent=xml2.getElementsByTagName('content');
  3. function getNext(nod) {
  4.         var head=nod.firstChild.nodeValue;
  5.     document.getElementById('head').innerHTML = head;
  6.     document.getElementById('head').appendChild(arrContent[0]);
  7. }
41. Bio man - 22 Апреля, 2012 - 17:10:25 - перейти к сообщению
LIME, с выводом разобрался. Щас самый актуальный вопрос это как заставить работать лайтбокс с динамическим контентом?
42. LIME - 22 Апреля, 2012 - 17:10:55 - перейти к сообщению
Bio man пишет:
Вот как получить количество элементов material или head?
arr.length
(Добавление)
ну я так понял это связано с заменой сущностей
в моем примере прямая вставка в ДОМ
без замены
43. Bio man - 22 Апреля, 2012 - 17:13:16 - перейти к сообщению
попробовал Fancybox, у него такая же проблема. может есть что то другое, что не сканирует страницу при запуске и может работать с динамикой?
(Добавление)
что делать со всплывающими картинками? не хотелось бы от такого отказываться.
(Добавление)
Ладно, забили на лайтбокс с джава скриптом, буду крутить лайтбокс с CSS3
44. Bio man - 22 Апреля, 2012 - 20:34:16 - перейти к сообщению
Все получилось круче чем я ожидал!
И так другой вопрос. Как сделать загрузку данных с таймером?
В общем алгоритм такой: если стоит галочка в чекбоксе то таймер включен и каждые 20 секунд выводится следующий узел.

И еще, можно ли сделать плавный переход по нажатию кнопочки или если включен таймер?
45. LIME - 22 Апреля, 2012 - 21:01:42 - перейти к сообщению
CODE (javascript):
скопировать код в буфер обмена
  1. var intervalID = setInterval(function() {...},20 000);// 20 сек...можно имя ф-ции указать
  2. clearInterval(intervalID);// убивает таймер
  3. setTimeout(...);// тоже но 1 раз выполняется и все
  4. function check(check) {
  5. if (check.checked==true) {
  6.      пускаем таймер;
  7. } else {
  8.    остановка таймера;
  9. }
  10. }
  11.  

CODE (html):
скопировать код в буфер обмена
  1. <INPUT TYPE="checkbox" onclick="check(this);">

(Добавление)
http://xhtml[dot]ru/2006/11/02/fade-[dot][dot][dot]-effect-opacity/ testObj там, это document.getElementById('head') у тебя
(Добавление)
немного исправил

 

Powered by ExBB FM 1.0 RC1