|
|
|
| Здравствуйте!
Вот пример: http://jsfiddle.net/kilotonna/9JNUR/9/ , в котором две кнопки "встраивают" в соответствующие им дивы текстарею (каждую с уникальным id).
Вопрос вот такой: как сделать тогл, который бы оставлял на странице только одну текстарею? То есть, чтобы одновременно не было других текстарей, кроме вызванной.
Большое спасибо! | |
|
|
|
|
|
|
|
для: Deed
(12.09.2012 в 22:40)
| | Блин, ну и разговорник... текстарею )
if($('textarea').length) return false; | |
|
|
|
|
|
|
|
для: confirm
(12.09.2012 в 23:06)
| | Спасибо, confirm. Но это не решение. if($('textarea').length) return false; конечно, блокирует нажатие остальных кнопок (и повтороное нажатие this, что не позволяет арею скрыть).
Мне же хотелось бы, чтобы при нажатии других кнопок стальные текстареи, если были ранее созданы, уничтожались.
То есть, если была нажата первая кнопка и была создана первая арея, то при нажатии на вторую кнопку первая уничтожалась и появлялась вторая текстарея. И наоборот.
Количество создаваемых форм не странице - произвольное.
Вроде как этим пустым дивам нужно присвоить класс и при клике на кнопке сначала очищать их содержимое $('div.mumu').html(''); а потом уже работать с каждым this'oм конкретно... Но это корявое решение, да? Потому, что в этом случае текстарея не уничтожается при повторном клике на кнопке: http://jsfiddle.net/kilotonna/9JNUR/16/ | |
|
|
|
|
|
|
|
для: Deed
(13.09.2012 в 08:08)
| | >Мне же хотелось бы, чтобы при нажатии других кнопок стальные текстареи, если были ранее созданы, уничтожались.
А вы перечитайте свой первый пост, в нем сказано явно - "не может быть другой, кроме уже открытой". Поэтому, то что я написал и есть ответ на это. А вот что он блокирует нажатие всего, так это уже вы не в то место воткнули. Я предполагал, что вы поймете, что эта проверка должна блокировать не нажатие каких либо кнопок, а запрещать создание элемента, если его братец уже есть на странице.
Если же вам надо переключать, то я вам когда-то уже говорил - когда пишите код, размышляйте, чтобы элементами кода было легко управлять. В этом же конкретном случае и размышлять то не так и много, если конечно вы в конце концов определитесь с числом форм на странице - "Количество создаваемых форм не странице - произвольное.". Произвольное, это 1,2,3.... Так сколько же?
Я вам уже говорил - создаете html-код, определяйтесь сразу с тем, как вы будете обращаться к его элементам, а для этого их можно группировать вложением в родителя, располагать их на одних и тех же уровнях по отношению к родителям, префиксное именование, и т.д., и т.п..
Если речь все таки о двух, то даже не зная вашего html-кода, могу сказать точно - у вашей "проблемы" есть общий родитель - тело документа (body). То есть, если вы говорите об "очистке", то контейнеры форм всегда присутствуют на странице, и в наборе родителя своего они имеют индекс. Индекс - это самое удобное средство, которое позволяет обращаться к элементам анонимно.
Если взять индекс текущего контейнера (в котором создана форма), и получить его инверсное значение, то оно укажет на контейнер, в котором нужно будет создать форму. А получить инверсное значение индекса, это значит применить к текущему индексу операцию XOR, вторым операндом которой будет выступать 1 (для двух индексов - 0,1).
А эти контейнеры либо всегда содержат дочерей - кнопки, либо эти кнопки окружают их (соседствуют с ними). И если вы все грамотно расположили (о чем неоднократно говорилось), то решается все очень просто.
Примечание: textarea или текстовая область. Текстарея, такая же дикость как и чекетный бокс. ) | |
|
|
|
|
|
|
|
для: confirm
(13.09.2012 в 08:43)
| | Здравствуйте, confirm!
Спасибо вам за науку и потраченное на меня время. Сейчас начну думать :) | |
|
|
|
|
|
|
|
для: Deed
(13.09.2012 в 18:24)
| | Только сейчас? )) Думать надо всегда ) | |
|
|
|
|
|
|
|
для: confirm
(13.09.2012 в 18:28)
| | Эт точно.
© товарищ Сухов | |
|
|
|
|
|
|
|
для: confirm
(13.09.2012 в 08:43)
| | Решено. Но как-то неизящно: http://jsfiddle.net/kilotonna/9JNUR/18/ - пришлось усложнять DOM новыми id... Но это уже будет делать php.
Confirm, Вы хороший учитель. Спасибо. | |
|
|
|
|
|
|
|
для: Deed
(13.09.2012 в 18:44)
| | Даже и не знаю, как вам еще объяснить более доходчиво...
Во-первых, id, это просто идентификатор, он не может быть новым или старым, он как фамилия при рождении. В чем усложнение не понятно. Это раз.
Второе, вроде бы как уже говорил - индексы, тем более вы управляете всего двумя элементами. Тем более, нафик вам не нужны эти div, пока нет запроса на создание формы (если эти div служат контейнерами для нее), а создавать их динамически. А вот кнопки присутствуют всегда, а вставить div с формой можно перед/за ними, а обратившись к кнопке, можно узнать ее соседа, а кнопки ведь тоже имеют индексы...
Надо не просто думать, а размышлять. Как растет дерево - от семени в почве корни, от корней ствол, от ствола ветви, и уже на ветвях листья. Ваше дерево начинает расти с листочков, так как на нем есть только листья, и хилые ветви. Такое дерево обязательно захереет - нет в нем ствола на чем держаться, и корней, чем питаться. | |
|
|
|
|
|
|
|
для: confirm
(13.09.2012 в 19:02)
| | Oh mein Gott! | |
|
|
|