Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

HTML+CSS+JavaScript

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: очистить все <div>, кроме одного
 
 автор: Deed   (12.09.2012 в 22:40)   письмо автору
 
 

Здравствуйте!
Вот пример: http://jsfiddle.net/kilotonna/9JNUR/9/ , в котором две кнопки "встраивают" в соответствующие им дивы текстарею (каждую с уникальным id).
Вопрос вот такой: как сделать тогл, который бы оставлял на странице только одну текстарею? То есть, чтобы одновременно не было других текстарей, кроме вызванной.

Большое спасибо!

  Ответить  
 
 автор: confirm   (12.09.2012 в 23:06)   письмо автору
 
   для: Deed   (12.09.2012 в 22:40)
 

Блин, ну и разговорник... текстарею )
if($('textarea').length) return false;

  Ответить  
 
 автор: Deed   (13.09.2012 в 08:08)   письмо автору
 
   для: confirm   (12.09.2012 в 23:06)
 

Спасибо, confirm. Но это не решение. if($('textarea').length) return false; конечно, блокирует нажатие остальных кнопок (и повтороное нажатие this, что не позволяет арею скрыть).
Мне же хотелось бы, чтобы при нажатии других кнопок стальные текстареи, если были ранее созданы, уничтожались.
То есть, если была нажата первая кнопка и была создана первая арея, то при нажатии на вторую кнопку первая уничтожалась и появлялась вторая текстарея. И наоборот.
Количество создаваемых форм не странице - произвольное.
Вроде как этим пустым дивам нужно присвоить класс и при клике на кнопке сначала очищать их содержимое $('div.mumu').html(''); а потом уже работать с каждым this'oм конкретно... Но это корявое решение, да? Потому, что в этом случае текстарея не уничтожается при повторном клике на кнопке: http://jsfiddle.net/kilotonna/9JNUR/16/

  Ответить  
 
 автор: confirm   (13.09.2012 в 08:43)   письмо автору
 
   для: Deed   (13.09.2012 в 08:08)
 

>Мне же хотелось бы, чтобы при нажатии других кнопок стальные текстареи, если были ранее созданы, уничтожались.

А вы перечитайте свой первый пост, в нем сказано явно - "не может быть другой, кроме уже открытой". Поэтому, то что я написал и есть ответ на это. А вот что он блокирует нажатие всего, так это уже вы не в то место воткнули. Я предполагал, что вы поймете, что эта проверка должна блокировать не нажатие каких либо кнопок, а запрещать создание элемента, если его братец уже есть на странице.

Если же вам надо переключать, то я вам когда-то уже говорил - когда пишите код, размышляйте, чтобы элементами кода было легко управлять. В этом же конкретном случае и размышлять то не так и много, если конечно вы в конце концов определитесь с числом форм на странице - "Количество создаваемых форм не странице - произвольное.". Произвольное, это 1,2,3.... Так сколько же?

Я вам уже говорил - создаете html-код, определяйтесь сразу с тем, как вы будете обращаться к его элементам, а для этого их можно группировать вложением в родителя, располагать их на одних и тех же уровнях по отношению к родителям, префиксное именование, и т.д., и т.п..

Если речь все таки о двух, то даже не зная вашего html-кода, могу сказать точно - у вашей "проблемы" есть общий родитель - тело документа (body). То есть, если вы говорите об "очистке", то контейнеры форм всегда присутствуют на странице, и в наборе родителя своего они имеют индекс. Индекс - это самое удобное средство, которое позволяет обращаться к элементам анонимно.

Если взять индекс текущего контейнера (в котором создана форма), и получить его инверсное значение, то оно укажет на контейнер, в котором нужно будет создать форму. А получить инверсное значение индекса, это значит применить к текущему индексу операцию XOR, вторым операндом которой будет выступать 1 (для двух индексов - 0,1).

А эти контейнеры либо всегда содержат дочерей - кнопки, либо эти кнопки окружают их (соседствуют с ними). И если вы все грамотно расположили (о чем неоднократно говорилось), то решается все очень просто.

Примечание: textarea или текстовая область. Текстарея, такая же дикость как и чекетный бокс. )

  Ответить  
 
 автор: Deed   (13.09.2012 в 18:24)   письмо автору
 
   для: confirm   (13.09.2012 в 08:43)
 

Здравствуйте, confirm!
Спасибо вам за науку и потраченное на меня время. Сейчас начну думать :)

  Ответить  
 
 автор: confirm   (13.09.2012 в 18:28)   письмо автору
 
   для: Deed   (13.09.2012 в 18:24)
 

Только сейчас? )) Думать надо всегда )

  Ответить  
 
 автор: Deed   (13.09.2012 в 18:48)   письмо автору
 
   для: confirm   (13.09.2012 в 18:28)
 

Эт точно.
© товарищ Сухов

  Ответить  
 
 автор: Deed   (13.09.2012 в 18:44)   письмо автору
 
   для: confirm   (13.09.2012 в 08:43)
 

Решено. Но как-то неизящно: http://jsfiddle.net/kilotonna/9JNUR/18/ - пришлось усложнять DOM новыми id... Но это уже будет делать php.

Confirm, Вы хороший учитель. Спасибо.

  Ответить  
 
 автор: confirm   (13.09.2012 в 19:02)   письмо автору
 
   для: Deed   (13.09.2012 в 18:44)
 

Даже и не знаю, как вам еще объяснить более доходчиво...
Во-первых, id, это просто идентификатор, он не может быть новым или старым, он как фамилия при рождении. В чем усложнение не понятно. Это раз.
Второе, вроде бы как уже говорил - индексы, тем более вы управляете всего двумя элементами. Тем более, нафик вам не нужны эти div, пока нет запроса на создание формы (если эти div служат контейнерами для нее), а создавать их динамически. А вот кнопки присутствуют всегда, а вставить div с формой можно перед/за ними, а обратившись к кнопке, можно узнать ее соседа, а кнопки ведь тоже имеют индексы...

Надо не просто думать, а размышлять. Как растет дерево - от семени в почве корни, от корней ствол, от ствола ветви, и уже на ветвях листья. Ваше дерево начинает расти с листочков, так как на нем есть только листья, и хилые ветви. Такое дерево обязательно захереет - нет в нем ствола на чем держаться, и корней, чем питаться.

  Ответить  
 
 автор: Deed   (13.09.2012 в 19:19)   письмо автору
 
   для: confirm   (13.09.2012 в 19:02)
 

Oh mein Gott!

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования