Slyweb
На разработку сайта! Скидки 50%!

Обработчики динамически добавленных элементов.

Вы можете задавать любые вопросы по jQuery.

Обработчики динамически добавленных элементов.

Сообщение aworld » 22 янв 2013, 19:32

Всем привет. Пишу чат.
В чате есть список юзеров и список сообщений, где я динамический добавляю элементы с содержимым при помощи метода append.
На эти динамически добавляемые элементы нужно повесить обработчики нажатия клавиш мыши например.
Вопрос вот какой: как передавать в эти обработчики переменные в качестве параметров?

Я делаю например так:

Когда юзер подключается к чату
Код: Выделить всё
$('#tableusers').append('<tr><td ><input type="button" id="menunick' + data[i].name + '" style="background:url(pic/f.png);" onMouseOver="$(this).css(\'background\',\'url(pic/f_over.png)\');" onMouseOut="$(this).css(\'background\',\'url(pic/f.png)\');"/></td><td style="color:#' +data[i].color+';"><a id="anick' + data[i].name + '" href="#" style="margin-left:5px;">' + data[i].name + '</a></td></tr>');


где data - массив юзеров

потом делаю так

Код: Выделить всё
$('#menunick' + data[i].name).on('click', function()
         {   
            
            str = this.id;
            str = str.replace('menunick', '');
              
            if($('#menuprivat_' + str).css('display') == 'none')
            {
                   $('#menuprivat_' + str).css('display','table-row');
               $('#menuignor_' + str).css('display','table-row');
            }
              else
            {
                   $('#menuprivat_' + str).css('display','none');
               $('#menuignor_' + str).css('display','none');
            }
          });


То есть я вместо передачи в обработчик переменной data[i].name, формирую у элемента сложный айди, и потом в самом обработчике из этого айди вытаскиваю нужные мне данные.

Во-первых смотрится как-то коряво, во-вторых я уже столкнулся с ситуацией, когда данный способ не помогает.

помогите, пожалуйста, с советом. Спасибо.
aworld
 
Сообщения: 1
Зарегистрирован: 22 янв 2013, 19:21

Вернуться в Вопросы по jQuery

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2