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

aworldx

New member
22.01.2013
1
0
#1
Всем привет. Пишу чат.
В чате есть список юзеров и список сообщений, где я динамический добавляю элементы с содержимым при помощи метода 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.name, формирую у элемента сложный айди, и потом в самом обработчике из этого айди вытаскиваю нужные мне данные.

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

помогите, пожалуйста, с советом. Спасибо.