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

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Мои вопросы по JavaScript [3]

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


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

> Без описания
Bio man
Отправлено: 22 Апреля, 2012 - 01:40:34
Post Id


Постоянный участник


Покинул форум
Сообщений всего: 2751
Дата рег-ции: Июль 2010  
Откуда: Даугавпилс, Латвия


Помог: 52 раз(а)




tuareg пишет:
window.onload
сработало! Как я понял загрузка будет только 1 раз при открытии окна браузера. Мне же нужно динамически менять содержимое по клику на кнопочки не перезагружая страницу. можно такое сделать? Или мы зря стараемся?
 
 Top
LIME
Отправлено: 22 Апреля, 2012 - 01:42:34
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


Помог: 322 раз(а)




tuareg да действительно
Bio man можно конечно
как задумано?
по клику след. узел показывать?
 
 Top
tuareg
Отправлено: 22 Апреля, 2012 - 01:43:17
Post Id


Участник


Покинул форум
Сообщений всего: 1234
Дата рег-ции: Июнь 2010  


Помог: 69 раз(а)




Можно все. Я бы сделал так. При загрузке страницы, сразу бы распарсил весь xml. и сохранил в переменные. А уже потом по кликам подставлял эти данные.
 
 Top
Bio man
Отправлено: 22 Апреля, 2012 - 01:45:45
Post Id


Постоянный участник


Покинул форум
Сообщений всего: 2751
Дата рег-ции: Июль 2010  
Откуда: Даугавпилс, Латвия


Помог: 52 раз(а)




LIME, да. Есть кнопочки вперед, назад. Вперед это следующий узел, назад предыдущий. И еще задуманы ссылочки, на которые нажимаешь и показывается произвольный узел.
 
 Top
LIME
Отправлено: 22 Апреля, 2012 - 01:54:13
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


Помог: 322 раз(а)




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;
это стоит делать если кнопочки будут активно юзаться
 
 Top
Bio man
Отправлено: 22 Апреля, 2012 - 12:55:31
Post Id


Постоянный участник


Покинул форум
Сообщений всего: 2751
Дата рег-ции: Июль 2010  
Откуда: Даугавпилс, Латвия


Помог: 52 раз(а)




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>

(Отредактировано автором: 22 Апреля, 2012 - 14:08:52)

 
 Top
Bio man
Отправлено: 22 Апреля, 2012 - 15:03:49
Post Id


Постоянный участник


Покинул форум
Сообщений всего: 2751
Дата рег-ции: Июль 2010  
Откуда: Даугавпилс, Латвия


Помог: 52 раз(а)




Урааа! Получилось, заменил сущности на эквиваленты и заработало.
(Добавление)
Спасайте! После того как я изменил теги на эквиваленты
Спойлер (Отобразить)
перестал работать Lightbox! Подозреваю, что это из за этих сущностей. Но ведь в браузере все корректно отображается, и картинка видна но при клике на нее она просто открывается в пустом окне а не с помощью Lightbox! Как сделать, что бы заработало?
(Добавление)
Спасайте! В переменную попадает нормальный текст, без сущностей! Все хорошо отображается но LightBox не работает!

(Отредактировано автором: 22 Апреля, 2012 - 15:32:56)

 
 Top
DelphinPRO
Отправлено: 22 Апреля, 2012 - 16:12:09
Post Id



Активный участник


Покинул форум
Сообщений всего: 7187
Дата рег-ции: Февр. 2012  


Помог: 353 раз(а)




Bio man заменять сущности на эквиваленты не нужно вручную Улыбка
для этого есть CDATA

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

ps/ однако, это скорее всего не решит проблему с лайтбоксом


-----
Чем больше узнаю, тем больше я не знаю.
 
 Top
Bio man
Отправлено: 22 Апреля, 2012 - 16:23:43
Post Id


Постоянный участник


Покинул форум
Сообщений всего: 2751
Дата рег-ции: Июль 2010  
Откуда: Даугавпилс, Латвия


Помог: 52 раз(а)




DelphinPRO пишет:
<content><![CDATA[<a href="">bla bala</a>]]></content>
Не работает. Как с лайтбоксом быть?
(Добавление)
такая мысль - добавить событие onclick в ссылку и в нем вызвать лайтбокс, тока понятия не имею как это сделать
 
 Top
LIME
Отправлено: 22 Апреля, 2012 - 17:07:14
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


Помог: 322 раз(а)




ну вывод сделать можно
только внутренне теги не работают
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. }
 
 Top
Bio man
Отправлено: 22 Апреля, 2012 - 17:10:25
Post Id


Постоянный участник


Покинул форум
Сообщений всего: 2751
Дата рег-ции: Июль 2010  
Откуда: Даугавпилс, Латвия


Помог: 52 раз(а)




LIME, с выводом разобрался. Щас самый актуальный вопрос это как заставить работать лайтбокс с динамическим контентом?
 
 Top
LIME
Отправлено: 22 Апреля, 2012 - 17:10:55
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


Помог: 322 раз(а)




Bio man пишет:
Вот как получить количество элементов material или head?
arr.length
(Добавление)
ну я так понял это связано с заменой сущностей
в моем примере прямая вставка в ДОМ
без замены
 
 Top
Bio man
Отправлено: 22 Апреля, 2012 - 17:13:16
Post Id


Постоянный участник


Покинул форум
Сообщений всего: 2751
Дата рег-ции: Июль 2010  
Откуда: Даугавпилс, Латвия


Помог: 52 раз(а)




попробовал Fancybox, у него такая же проблема. может есть что то другое, что не сканирует страницу при запуске и может работать с динамикой?
(Добавление)
что делать со всплывающими картинками? не хотелось бы от такого отказываться.
(Добавление)
Ладно, забили на лайтбокс с джава скриптом, буду крутить лайтбокс с CSS3
 
 Top
Bio man
Отправлено: 22 Апреля, 2012 - 20:34:16
Post Id


Постоянный участник


Покинул форум
Сообщений всего: 2751
Дата рег-ции: Июль 2010  
Откуда: Даугавпилс, Латвия


Помог: 52 раз(а)




Все получилось круче чем я ожидал!
И так другой вопрос. Как сделать загрузку данных с таймером?
В общем алгоритм такой: если стоит галочка в чекбоксе то таймер включен и каждые 20 секунд выводится следующий узел.

И еще, можно ли сделать плавный переход по нажатию кнопочки или если включен таймер?
 
 Top
LIME
Отправлено: 22 Апреля, 2012 - 21:01:42
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


Помог: 322 раз(а)




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') у тебя
(Добавление)
немного исправил

(Отредактировано автором: 22 Апреля, 2012 - 21:14:46)

 
 Top
Страниц (5): « 1 2 [3] 4 5 »
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« JavaScript & VBScript »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB