Показать сообщение отдельно
  #1 (permalink)  
Старый 15.02.2012, 02:31
Новичок на форуме
Отправить личное сообщение для Dmitri Посмотреть профиль Найти все сообщения от Dmitri
 
Регистрация: 15.02.2012
Сообщений: 3

Доступ к динамическому содержанию дива
Здравствуйте, уважаемые господа программисты.
Наткнулся на небольшую проблему. Сейчас делаю миничат, для отображение сообщений использую див и через аякс загружаю туда инфу каждые 5 сек.
Вот див куда поступают сообщения, ничего сложного (Див в оригинале пустой, но привожу пример структуры сообщений)
<div id='wrap'>
    <div id='chat'>

<p><span class='nick'> NICKNAME</span>: <span class=message>MESSAGE</span></p>
                
    </div>
 </div>


Вот функция обновления чата
function refreshChat(){
    $.ajax({
	url:'obnovit.php',
	data:'id=".$_GET['name']."',
	cache:false,
	success:function(html)
	{   
                 $('#chat').html(html);
                 document.getElementById( 'chat' ).scrollTop=99999;
                 setTimeout(refreshChat,5000);
                      }
    });
}


Но какой же чат без бана И вот тут начинается самое интересное. Задумка: для модера я предоставляю функцию- при клике на ник-нэйме в поле с сообщениями, выезжает окошко, где можно выбрать меру наказания.

Основа функции
$('.nick').click(function(){
})


Но так дело не идет - ф-ция не работает при клике на ник-нейм в чате.
Если такой же класс разместить в любом другом месте документа,то клик работает. Я уже думал, что скрипты не имеют доступа к динамическому контенту, но попробовав
$(document).click(function(){
$('.nick').html('');
})

убедился, что до перезагрузки окна чата, все ник-неймы были успешно удалены.

Чисто интуитивно решил втулить функцию в функцию
function refreshChat(){
    $.ajax({
	url:'obnovit.php',
	data:'id=".$_GET['name']."',
	cache:false,
	success:function(html)
	{   
                 $('#chat').html(html);
                 document.getElementById( 'chat' ).scrollTop=99999;
                 setTimeout(refreshChat,5000);

                 $('.nick').click(function(){
}) 
                  }

    });
}


И функция заработала , ура...но такая реализация есть извращение,плюс эта функция имеет свой аякс запрос, который вместо 1го раза выполняется произвольное количество раз. Кто-нибудь с подобным сталкивался?

Последний раз редактировалось Dmitri, 15.02.2012 в 02:44.
Ответить с цитированием