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 :: инкремент класса или id

 PHP.SU

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


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

> Описание: Помогите добавить инкремент к классу CSS или id
Evgeniux
Отправлено: 04 Октября, 2012 - 22:08:27
Post Id


Новичок


Покинул форум
Сообщений всего: 50
Дата рег-ции: Март 2009  


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




Добрый вечер. есть вот такой код
CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. <script type="text/javascript">
  3. jQuery (function()
  4. {
  5. jQuery('.button').click(function()
  6. {
  7. jQuery('#blok1').slideUp(1000);
  8. jQuery('#blok2').slideDown(1000);
  9. });
  10. });
  11. </script>
  12.  
  13.  

Который показывает или скрывает блок по клику кнопки. Проблема в том, что блоки берутся из базы в цикле, у всех блоков id разный (1, 2 и т.д.), а вот как сделать инкремент блока на jQuery? Читал, что как вариант, применяем регулярное выражение, которое ищет заданные одинаковые блоки и делает инкремент их id. Но это громоздко, уверен, что есть решение куда проще, но пока не нашел его, если кто подскажет буду очень благодарен.
 
 Top
armancho7777777 Супермодератор
Отправлено: 04 Октября, 2012 - 22:10:47
Post Id



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


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


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




Evgeniux пишет:
как сделать инкремент блока на jQuery

Вы это о чём?
 
 Top
Evgeniux
Отправлено: 04 Октября, 2012 - 22:30:58
Post Id


Новичок


Покинул форум
Сообщений всего: 50
Дата рег-ции: Март 2009  


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




есть функция (см выше) которая показывает или скрывает блок. с определенным id. Если таких блоков будет много (они выводятся из базы, кол-во не фиксировано). У всех будут разные id. Как можно переделать функцию, чтобы она работала для каждого такого блока отдельно, А то если у всех блоков одинаковый id, то при нажатии кнопки все блоки показываются, а должен показываться, только блок у которого нажали кнопку.
 
 Top
Bio man
Отправлено: 04 Октября, 2012 - 22:37:15
Post Id


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


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


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




 
 Top
armancho7777777 Супермодератор
Отправлено: 04 Октября, 2012 - 22:44:19
Post Id



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


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


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




Evgeniux пишет:
А то если у всех блоков одинаковый id

В корне у Вас уже не верно.
Не должно быть несколько элементов с одинаковым ID.
Задайте им всем одинаковый класс и оберните все эти блоки в один.
Где находится кнопка с классом button ?
Примерную разметку покажите, что ли ...
 
 Top
Evgeniux
Отправлено: 04 Октября, 2012 - 22:58:03
Post Id


Новичок


Покинул форум
Сообщений всего: 50
Дата рег-ции: Март 2009  


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




armancho7777777 пишет:
Evgeniux пишет:
А то если у всех блоков одинаковый id

В корне у Вас уже не верно.
Не должно быть несколько элементов с одинаковым ID.
Задайте им всем одинаковый класс и оберните все эти блоки в один.
Где находится кнопка с классом button ?
Примерную разметку покажите, что ли ...

вот, я о том же, это уже сделал: id при выводе из базы у всех блоков разный.

что-то типа:
CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. <div id="cont_mess">
  3. <div id="cont_them">
  4.    
  5.           {$them1}
  6.          </div>
  7.          <div id="cont_auth">
  8.           {$author1}
  9.          </div>
  10.          <div class="cont_read">
  11.           <a href="#" id="readmore{$i}"> Читать сообщение</a> // переменная i увеличивается каждый раз на 1
  12.          </div>
  13.  
  14.           <div id="cont_text">
  15.          {$text1}
  16.          </div>
  17.          <div id="cont_option">
  18.          <div id="cont_date">
  19.           {$date1}
  20.          </div>
  21.          <div id="cont_opt">
  22.          <a href='drop_post.php?id={$id1}'><img src="../images/delete.png" alt="Удалить"/></a>
  23.          </div>
  24.         </div>
  25. </div>
  26.  
 
 Top
armancho7777777 Супермодератор
Отправлено: 04 Октября, 2012 - 23:02:57
Post Id



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


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


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




Вы можете своими словами объяснить что Вы хотите реализовать ?
Лично я Вас не пойму.
armancho7777777 пишет:
Где находится кнопка с классом button ?
 
 Top
Okula
Отправлено: 04 Октября, 2012 - 23:03:25
Post Id



Участник


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


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




CODE (javascript):
скопировать код в буфер обмена
  1. function showBlock(id) {
  2.     $(id).slideToggle("slow");
  3. }

Код кнопки:
PHP:
скопировать код в буфер обмена
  1. <input type="button" onclick="showBlock(<?PHP echo $id; ?>)" value="Показать">
 
 Top
armancho7777777 Супермодератор
Отправлено: 04 Октября, 2012 - 23:07:40
Post Id



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


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


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




http://jsfiddle[dot]net/Nkf5Y/1/

(Отредактировано автором: 04 Октября, 2012 - 23:08:50)

 
 Top
DelphinPRO
Отправлено: 04 Октября, 2012 - 23:12:40
Post Id



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


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


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




Я правиьно понимаю что у вас много кнопок и много блоков которые должны открываться по клику на свою кнопку?

Могу подсказать два решения.

1. Если каждая кнопка и открываемый блок находятся в одном контейнере.

CODE (html):
скопировать код в буфер обмена
  1. <div class="cont">
  2.   <a href="#" class="button">Кнопка 1</a>
  3.   <!-- ... -->
  4.   <div class="slide">
  5.     Открывающийся блок 1
  6.   </div>
  7. </div>
  8.  
  9. <div class="cont">
  10.   <a href="#" class="button">Кнопка 2</a>
  11.   <!-- ... -->
  12.   <div class="slide">
  13.     Открывающийся блок 2
  14.   </div>
  15. </div>


CODE (javascript):
скопировать код в буфер обмена
  1. $('.button').click(function(){
  2.   $('.slide').slideUp(); // Закрываем все открытые блоки
  3.   $(this).closest('.cont').find('.slide').slideDown(); // Открываем нужный
  4. });


2. Более универсальный вариант
идентификаторы блоков передаёте в хеше ссылки

CODE (html):
скопировать код в буфер обмена
  1. <a href="#block1" class="button">Кнопка 1</a>
  2. <a href="#block2" class="button">Кнопка 2</a>


сами блоки:

CODE (html):
скопировать код в буфер обмена
  1. <div class="slide" id="block1">Открывающийся блок 1</div>
  2. <div class="slide" id="block2">Открывающийся блок 2</div>


CODE (javascript):
скопировать код в буфер обмена
  1. $('.button').click(function(){
  2.   $('.slide').slideUp(); // Закрываем все открытые блоки
  3.   $(this.hash).slideDown(); // Открываем нужный
  4. });


-----
Чем больше узнаю, тем больше я не знаю.
 
 Top
armancho7777777 Супермодератор
Отправлено: 04 Октября, 2012 - 23:15:06
Post Id



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


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


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




DelphinPRO пишет:
CODE (javascript):
скопировать код в буфер обмена
  1. $('.slide').slideUp(); // Закрываем все открытые блоки

CODE (javascript):
скопировать код в буфер обмена
  1. $('.slide:visible').slideUp();

(Добавление)
DelphinPRO пишет:
2. Более универсальный вариант
идентификаторы блоков передаёте в хеше ссылки

+1
 
 Top
Evgeniux
Отправлено: 04 Октября, 2012 - 23:21:16
Post Id


Новичок


Покинул форум
Сообщений всего: 50
Дата рег-ции: Март 2009  


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




спасибо буду пробовать.
 
 Top
Evgeniux
Отправлено: 06 Октября, 2012 - 21:18:12
Post Id


Новичок


Покинул форум
Сообщений всего: 50
Дата рег-ции: Март 2009  


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




Всем спасибо за помощь. Помогло.
 
 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