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 :: detach

 PHP.SU

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


 Страниц (1): [1]   

> Без описания
Арикус
Отправлено: 11 Августа, 2016 - 03:48:02
Post Id



Гость


Покинул форум
Сообщений всего: 123
Дата рег-ции: Июнь 2015  
Откуда: Москва, Россия


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




CODE (html):
скопировать код в буфер обмена
  1. <div class="right"><a id="sver1" class="btn btn-medium btn-blue">Свернуть</a></div>
  2. <div id="outerBlock1"><div id="innerBlock1">
  3. ...
  4. </div></div>

CODE (javascript):
скопировать код в буфер обмена
  1. // Свёртывание 1
  2. $('#sver1').on("click", function(event){
  3.         if ($(this).innerHTML == "Свернуть")
  4.         {$(this).innerHTML = 'Развернуть';
  5.         saveBlock1 = $('#innerBlock1').detach();}
  6.                 else
  7.                 {$(this).innerHTML = 'Свернуть';
  8.                 saveBlock1.appendTo('#outerBlock1');}
  9. });

Скрипт не работает. Консоль выдаёт ошибку (предпоследняя строчка в этом куске):
ReferenceError: saveBlock1 is not defined
Иначе говоря, detach не удалил и не записал содержимое блока.
 
 Top
Fart
Отправлено: 11 Августа, 2016 - 05:43:30
Post Id



Посетитель


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


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




CODE (javascript):
скопировать код в буфер обмена
  1. <script>
  2. var saveBlock1;
  3. $('#sver1').on("click", function(event){
  4.         if ($(this).html() == "Свернуть"){
  5.                 $(this).html('Развернуть');
  6.                 saveBlock1 = $('#innerBlock1').detach();
  7.         }
  8.         else{
  9.                 $(this).html('Свернуть');
  10.                 saveBlock1.appendTo('#outerBlock1');
  11.                 saveBlock1 = null;
  12.         }
  13. });
  14. </script>

(Отредактировано автором: 11 Августа, 2016 - 05:47:59)

 
 Top
IllusionMH
Отправлено: 11 Августа, 2016 - 12:44:39
Post Id



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


Покинул форум
Сообщений всего: 4254
Дата рег-ции: Февр. 2011  
Откуда: .kh.ua


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




Арикус, у вас присвоение и использоване в разных ветках IF.
Сразу сохраняйте ссылку на объек в переменную (в функции или в замыкании если он не меняется), а потом уже работайте с ней.

И если объявляете переменную, то используйте var иначе создается глобальная переменная.

Fart, уже лучше, но не поможет если сначала выполнится else ветка. Будет что-то вроде "cannot get method appendTo of undefined"
 
 Top
Fart
Отправлено: 11 Августа, 2016 - 14:33:48
Post Id



Посетитель


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


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




IllusionMH это само собой. Я исправил его код до исправления ошибок, но логическую цепочку ему доделывать самому. Может этой конструкции будет достаточно. Но что касается else то тут дорабатывать нужно. Я не писал основной алгоритм, не мне отвечать за последствия. К тому же не было задачи поставленно дописать.
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 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