Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 12.09.2010, 12:14
Новичок на форуме
Отправить личное сообщение для Lifesaver Посмотреть профиль Найти все сообщения от Lifesaver
 
Регистрация: 12.09.2010
Сообщений: 4

Не отлавливается ДОМ -элемент, созданный динамически.
Сабж:
По клику на элементе страницы, менюшка клонируется и "врезается" в элемент. Это работает. Но почему то последующие действия с ней (имею в виду сокрытие её и.т.п.) невозможны.
Javascript:
<script type="text/javascript">$(document).ready(function() {$('div.frmln').click(function() { $(this).next('span.dot').append($('div.ugc').clone().removeClass('he').addClass('sw'));});
//$('div.sw div#common').click(function() { $(this).parent('div.ugc').removeClass('sw').addClass('he');});
});</script>

ХТМЛ:
Код:
<div class="frmln">Переместить в
   <span class="emct"></span>
</div>
<span class="dot"></span>
...
<div class="ugc he">
   <div id="common"></div>
	<a class="esl" href="#" title="">Ссылка1</a>
	<a class="esl" href="#" title="">Ссылка2</a>
</div>
Соответственно .he - дисплей:нон, а .sw -дисплей:блок.
Не работает закомментированная часть кода.
Есть мысли ?
Ответить с цитированием
  #2 (permalink)  
Старый 12.09.2010, 12:19
Аватар для Gvozd
Матрос
Отправить личное сообщение для Gvozd Посмотреть профиль Найти все сообщения от Gvozd
 
Регистрация: 04.04.2008
Сообщений: 6,246

а с чего бы этому коду работать, если у вас неуникальные ID-шники
класс сменили, а ID забыли.
внимательнее надо быть

Последний раз редактировалось Gvozd, 12.09.2010 в 13:58.
Ответить с цитированием
  #3 (permalink)  
Старый 12.09.2010, 12:39
Новичок на форуме
Отправить личное сообщение для Lifesaver Посмотреть профиль Найти все сообщения от Lifesaver
 
Регистрация: 12.09.2010
Сообщений: 4

Gvozd,
Да что я уже только не пробовал. Уже айдишнег присваивал(#one) к .ugc
Вызов получался следующий (та часть которая не работает):
$('div#one div#common').click(function() { $(this).parent('div#one').removeClass('sw').addClass('he');})

Не работает.
Или мне для #common тоже нужно класс добавлять при клонировании и показе ?
Ответить с цитированием
  #4 (permalink)  
Старый 12.09.2010, 13:59
Аватар для Gvozd
Матрос
Отправить личное сообщение для Gvozd Посмотреть профиль Найти все сообщения от Gvozd
 
Регистрация: 04.04.2008
Сообщений: 6,246

вы что, совсем дурак?
у вас два элемента #common
это недопустимо.
смените второму, клоннированному его ID
что непонятного-то было?
Ответить с цитированием
  #5 (permalink)  
Старый 12.09.2010, 15:53
Новичок на форуме
Отправить личное сообщение для Lifesaver Посмотреть профиль Найти все сообщения от Lifesaver
 
Регистрация: 12.09.2010
Сообщений: 4

Сообщение от Gvozd
вы что, совсем дурак?
Видимо - да . Ибо добавив класс вместо айди и изменяя его при всплытии я так ничего и не добился. После размышлений я решил отказаться от айди, ибо таких одновременно работающих окон на странице может быть несколько.

<script type="text/javascript">$(document).ready(function() {
    $('div.frmln').click(function() { 
        $(this).next('span.dot').append($('div.ugc_he').clone().children('div.common').removeClass('common').addClass('cmn').end().removeClass('ugc_he').addClass('ugc_sw'));
    });
    $('div.cmn').click(function() { 
        $(this).removeClass('cmn').addClass('common');// классы отличаются цветом бэкграунда 
    });
});
</script>
Ответить с цитированием
  #6 (permalink)  
Старый 13.09.2010, 19:10
Новичок на форуме
Отправить личное сообщение для Bertolomych Посмотреть профиль Найти все сообщения от Bertolomych
 
Регистрация: 13.09.2010
Сообщений: 2

Lifesaver здесь все проще. Дело даже и не в id-шнике. Уж я понабил шишек на этих динамических элементах (и продолжаю их набивать.. %-))
Дело в том, что команда .click() не работает с динамически созданными элементами. Почему - ХЗ. На сайте jquery.com написано просто: не работает.
Вместо нее используйте команду
.live('click', function(){})
подробнее - см. на сайте jquery.com
Ответить с цитированием
  #7 (permalink)  
Старый 13.09.2010, 21:31
Новичок на форуме
Отправить личное сообщение для Lifesaver Посмотреть профиль Найти все сообщения от Lifesaver
 
Регистрация: 12.09.2010
Сообщений: 4

Bertolomych,
Спасибо огромное. Всё заработало.
Ответить с цитированием
  #8 (permalink)  
Старый 14.09.2010, 10:51
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

Сообщение от Bertolomych
Почему - ХЗ
Потому что вы не понимаете, что происходит при вызове того или иного jQuery-метода.
Ответить с цитированием
  #9 (permalink)  
Старый 14.09.2010, 14:21
Новичок на форуме
Отправить личное сообщение для Bertolomych Посмотреть профиль Найти все сообщения от Bertolomych
 
Регистрация: 13.09.2010
Сообщений: 2

Сообщение от Kolyaj Посмотреть сообщение
Потому что вы не понимаете, что происходит при вызове того или иного jQuery-метода.
Да.. тут уж не поспоришь.. Я как-то пытался развинтить jq на винтики - нихрена не врубился..
Ответить с цитированием
  #10 (permalink)  
Старый 14.09.2010, 14:24
Профессор
Отправить личное сообщение для exec Посмотреть профиль Найти все сообщения от exec
 
Регистрация: 21.01.2010
Сообщений: 1,022

Цитата:
Я как-то пытался развинтить jq на винтики - нихрена не врубился..
Если не понятно, как работает тот или иной метод, можно попробовать самому его реализовать и всё станет ясно.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как можно удалить динамически созданный элемент Арсений Элементы интерфейса 18 08.07.2010 12:56
как в динамически добавляемый элемент добавить еще несколько? sadonn Элементы интерфейса 1 29.05.2010 12:07
почему не удаляется динамически созданный элемент? magistr_bender Элементы интерфейса 5 15.09.2008 19:52